aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_analog.c
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2010-01-21 08:54:38 -0500
committerJaroslav Kysela <perex@perex.cz>2010-01-21 08:54:38 -0500
commitfd0b092a7b14559e2ff17ef3aaefb5d8adc7e15f (patch)
treebeacc87216332d87c3fe2c47cf00d3bf5f9ee87c /sound/pci/hda/patch_analog.c
parentc91a988dc6551c66418690e36b2a23cdb0255da8 (diff)
ALSA: hda - AD1988 codec - fix SPDIF-input mixer initialization (unmute)
The SPDIF-input pin 0x1c is muted by default in hardware. Unmute appropriate pin to get captured samples instead zeros. Tested on Lenovo Thinkstation. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/hda/patch_analog.c')
-rw-r--r--sound/pci/hda/patch_analog.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index cecd3c108990..865715e3f938 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -2458,6 +2458,12 @@ static struct hda_verb ad1988_spdif_init_verbs[] = {
2458 { } 2458 { }
2459}; 2459};
2460 2460
2461static struct hda_verb ad1988_spdif_in_init_verbs[] = {
2462 /* unmute SPDIF input pin */
2463 {0x1c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
2464 { }
2465};
2466
2461/* AD1989 has no ADC -> SPDIF route */ 2467/* AD1989 has no ADC -> SPDIF route */
2462static struct hda_verb ad1989_spdif_init_verbs[] = { 2468static struct hda_verb ad1989_spdif_init_verbs[] = {
2463 /* SPDIF-1 out pin */ 2469 /* SPDIF-1 out pin */
@@ -3193,8 +3199,11 @@ static int patch_ad1988(struct hda_codec *codec)
3193 ad1988_spdif_init_verbs; 3199 ad1988_spdif_init_verbs;
3194 } 3200 }
3195 } 3201 }
3196 if (spec->dig_in_nid && codec->vendor_id < 0x11d4989a) 3202 if (spec->dig_in_nid && codec->vendor_id < 0x11d4989a) {
3197 spec->mixers[spec->num_mixers++] = ad1988_spdif_in_mixers; 3203 spec->mixers[spec->num_mixers++] = ad1988_spdif_in_mixers;
3204 spec->init_verbs[spec->num_init_verbs++] =
3205 ad1988_spdif_in_init_verbs;
3206 }
3198 3207
3199 codec->patch_ops = ad198x_patch_ops; 3208 codec->patch_ops = ad198x_patch_ops;
3200 switch (board_config) { 3209 switch (board_config) {