Commit ce715448 authored by Connor McAdams's avatar Connor McAdams Committed by Takashi Iwai

ALSA: hda/ca0132 - Change ca0132_mmio_init for AE-5

This patch adds the unique writes for the AE-5 on startup to
ca0132_mmio_init. The other cards share some addresses written to, but
use different values.
Signed-off-by: default avatarConnor McAdams <conmanx360@gmail.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 88268ce8
...@@ -7223,23 +7223,72 @@ static void ca0132_mmio_init(struct hda_codec *codec) ...@@ -7223,23 +7223,72 @@ static void ca0132_mmio_init(struct hda_codec *codec)
{ {
struct ca0132_spec *spec = codec->spec; struct ca0132_spec *spec = codec->spec;
writel(0x00000000, spec->mem_base + 0x400); if (spec->quirk == QUIRK_AE5)
writel(0x00000000, spec->mem_base + 0x408); writel(0x00000001, spec->mem_base + 0x400);
writel(0x00000000, spec->mem_base + 0x40C); else
writel(0x00000000, spec->mem_base + 0x400);
if (spec->quirk == QUIRK_AE5)
writel(0x00000001, spec->mem_base + 0x408);
else
writel(0x00000000, spec->mem_base + 0x408);
if (spec->quirk == QUIRK_AE5)
writel(0x00000001, spec->mem_base + 0x40c);
else
writel(0x00000000, spec->mem_base + 0x40C);
writel(0x00880680, spec->mem_base + 0x01C); writel(0x00880680, spec->mem_base + 0x01C);
writel(0x00000083, spec->mem_base + 0xC0C);
if (spec->quirk == QUIRK_AE5)
writel(0x00000080, spec->mem_base + 0xC0C);
else
writel(0x00000083, spec->mem_base + 0xC0C);
writel(0x00000030, spec->mem_base + 0xC00); writel(0x00000030, spec->mem_base + 0xC00);
writel(0x00000000, spec->mem_base + 0xC04); writel(0x00000000, spec->mem_base + 0xC04);
if (spec->quirk == QUIRK_AE5)
writel(0x00000000, spec->mem_base + 0xC0C);
else
writel(0x00000003, spec->mem_base + 0xC0C);
writel(0x00000003, spec->mem_base + 0xC0C); writel(0x00000003, spec->mem_base + 0xC0C);
writel(0x00000003, spec->mem_base + 0xC0C); writel(0x00000003, spec->mem_base + 0xC0C);
writel(0x00000003, spec->mem_base + 0xC0C); writel(0x00000003, spec->mem_base + 0xC0C);
writel(0x00000003, spec->mem_base + 0xC0C);
writel(0x000000C1, spec->mem_base + 0xC08); if (spec->quirk == QUIRK_AE5)
writel(0x00000001, spec->mem_base + 0xC08);
else
writel(0x000000C1, spec->mem_base + 0xC08);
writel(0x000000F1, spec->mem_base + 0xC08); writel(0x000000F1, spec->mem_base + 0xC08);
writel(0x00000001, spec->mem_base + 0xC08); writel(0x00000001, spec->mem_base + 0xC08);
writel(0x000000C7, spec->mem_base + 0xC08); writel(0x000000C7, spec->mem_base + 0xC08);
writel(0x000000C1, spec->mem_base + 0xC08); writel(0x000000C1, spec->mem_base + 0xC08);
writel(0x00000080, spec->mem_base + 0xC04); writel(0x00000080, spec->mem_base + 0xC04);
if (spec->quirk == QUIRK_AE5) {
writel(0x00000000, spec->mem_base + 0x42c);
writel(0x00000000, spec->mem_base + 0x46c);
writel(0x00000000, spec->mem_base + 0x4ac);
writel(0x00000000, spec->mem_base + 0x4ec);
writel(0x00000000, spec->mem_base + 0x43c);
writel(0x00000000, spec->mem_base + 0x47c);
writel(0x00000000, spec->mem_base + 0x4bc);
writel(0x00000000, spec->mem_base + 0x4fc);
writel(0x00000600, spec->mem_base + 0x100);
writel(0x00000014, spec->mem_base + 0x410);
writel(0x0000060f, spec->mem_base + 0x100);
writel(0x0000070f, spec->mem_base + 0x100);
writel(0x00000aff, spec->mem_base + 0x830);
writel(0x00000000, spec->mem_base + 0x86c);
writel(0x0000006b, spec->mem_base + 0x800);
writel(0x00000001, spec->mem_base + 0x86c);
writel(0x0000006b, spec->mem_base + 0x800);
writel(0x00000057, spec->mem_base + 0x804);
writel(0x00800000, spec->mem_base + 0x20c);
}
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment