ALSA: hda/ca0132 - Add ca0132_mmio_init data for SoundBlaster AE-7.
authorConnor McAdams <conmanx360@gmail.com>
Tue, 25 Aug 2020 20:10:32 +0000 (16:10 -0400)
committerTakashi Iwai <tiwai@suse.de>
Wed, 26 Aug 2020 08:28:12 +0000 (10:28 +0200)
Modify the AE-5 ca0132_mmio_init function to add AE-7 specific writes.

Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Link: https://lore.kernel.org/r/20200825201040.30339-14-conmanx360@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_ca0132.c

index bd5d4f0..10aaa48 100644 (file)
@@ -8748,8 +8748,26 @@ static void ca0132_mmio_init_ae5(struct hda_codec *codec)
        data = ca0113_mmio_init_data_ae5;
        count = ARRAY_SIZE(ca0113_mmio_init_data_ae5);
 
-       for (i = 0; i < count; i++)
+       if (ca0132_quirk(spec) == QUIRK_AE7) {
+               writel(0x00000680, spec->mem_base + 0x1c);
+               writel(0x00880680, spec->mem_base + 0x1c);
+       }
+
+       for (i = 0; i < count; i++) {
+               /*
+                * AE-7 shares all writes with the AE-5, except that it writes
+                * a different value to 0x20c.
+                */
+               if (i == 21 && ca0132_quirk(spec) == QUIRK_AE7) {
+                       writel(0x00800001, spec->mem_base + addr[i]);
+                       continue;
+               }
+
                writel(data[i], spec->mem_base + addr[i]);
+       }
+
+       if (ca0132_quirk(spec) == QUIRK_AE5)
+               writel(0x00880680, spec->mem_base + 0x1c);
 }
 
 static void ca0132_mmio_init(struct hda_codec *codec)