summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorConnor McAdams <conmanx360@gmail.com>2018-09-29 23:03:21 -0400
committerTakashi Iwai <tiwai@suse.de>2018-10-02 17:21:02 +0200
commit2e492b8ee5da8ac1c9b31f728c9d9624e4345548 (patch)
treee7280b3525f4600b8e0733cec01257ec3c64deb9 /sound/pci
parent7675a2a9398af3d910df8f8aa96382b3bb6b696f (diff)
downloadlinux-2e492b8ee5da8ac1c9b31f728c9d9624e4345548.tar.bz2
ALSA: hda/ca0132 - Add ZxR init commands
This patch adds init commands for the main Sound Blaster ZxR card. Signed-off-by: Connor McAdams <conmanx360@gmail.com> Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_ca0132.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
index a543b2368fbb..6e48c3dc022a 100644
--- a/sound/pci/hda/patch_ca0132.c
+++ b/sound/pci/hda/patch_ca0132.c
@@ -7953,7 +7953,10 @@ static void ca0132_mmio_init(struct hda_codec *codec)
else
writel(0x00000000, spec->mem_base + 0x40C);
- writel(0x00880680, spec->mem_base + 0x01C);
+ if (spec->quirk == QUIRK_ZXR)
+ writel(0x00880640, spec->mem_base + 0x01C);
+ else
+ writel(0x00880680, spec->mem_base + 0x01C);
if (spec->quirk == QUIRK_AE5)
writel(0x00000080, spec->mem_base + 0xC0C);
@@ -8091,6 +8094,10 @@ static void ca0132_alt_init(struct hda_codec *codec)
snd_hda_sequence_write(codec, spec->desktop_init_verbs);
ca0113_mmio_command_set(codec, 0x30, 0x32, 0x3f);
break;
+ case QUIRK_ZXR:
+ snd_hda_sequence_write(codec, spec->chip_init_verbs);
+ snd_hda_sequence_write(codec, spec->desktop_init_verbs);
+ break;
}
}
@@ -8585,6 +8592,10 @@ static int patch_ca0132(struct hda_codec *codec)
spec->mixers[0] = desktop_mixer;
snd_hda_codec_set_name(codec, "Sound Blaster Z");
break;
+ case QUIRK_ZXR:
+ spec->mixers[0] = desktop_mixer;
+ snd_hda_codec_set_name(codec, "Sound Blaster ZxR");
+ break;
case QUIRK_ZXR_DBPRO:
codec->patch_ops = dbpro_patch_ops;
break;
@@ -8610,6 +8621,7 @@ static int patch_ca0132(struct hda_codec *codec)
case QUIRK_SBZ:
case QUIRK_R3D:
case QUIRK_AE5:
+ case QUIRK_ZXR:
spec->use_alt_controls = true;
spec->use_alt_functions = true;
spec->use_pci_mmio = true;