aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorJerone Young <jerone@gmail.com>2008-01-07 06:22:18 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:29:45 -0500
commitebf00c54a6e1be0ae25d41236a063747c74ed5bf (patch)
treeb4546117b36cc22ff3c7476879454226288aa91f /sound/pci
parentc481fca3e68155459e9805dc8c303e012ccbee54 (diff)
[ALSA] hda-codec - Add IEC958 digital out support for Lenovo Thinkpads T61/X61
This patch adds IEC958 digital out support for the AD1984 sound card. This card can be found in Lenovo Thinkapds T61/X61. The digital out is not located on the Thinkpad, but optional docking station (it's coxial digital out). I've add this support as it is done the exact same way for the AD1983 & AD1884. I have tested this patch with my Lenovo Thinkpad T61 hooked up to a docking station (that has the digital coxial) and then run to my home theater reciever. Works like a charm :-) Signed-off-by: Jerone Young <jerone@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_analog.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 0fa5f00edb5c..67144dce90d7 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -3095,6 +3095,16 @@ static struct snd_kcontrol_new ad1984_thinkpad_mixers[] = {
3095 .get = ad198x_mux_enum_get, 3095 .get = ad198x_mux_enum_get,
3096 .put = ad198x_mux_enum_put, 3096 .put = ad198x_mux_enum_put,
3097 }, 3097 },
3098 /* SPDIF controls */
3099 HDA_CODEC_VOLUME("IEC958 Playback Volume", 0x1b, 0x0, HDA_OUTPUT),
3100 {
3101 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3102 .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source",
3103 /* identical with ad1983 */
3104 .info = ad1983_spdif_route_info,
3105 .get = ad1983_spdif_route_get,
3106 .put = ad1983_spdif_route_put,
3107 },
3098 { } /* end */ 3108 { } /* end */
3099}; 3109};
3100 3110
@@ -3197,7 +3207,7 @@ static int patch_ad1984(struct hda_codec *codec)
3197 codec->patch_ops.build_pcms = ad1984_build_pcms; 3207 codec->patch_ops.build_pcms = ad1984_build_pcms;
3198 break; 3208 break;
3199 case AD1984_THINKPAD: 3209 case AD1984_THINKPAD:
3200 spec->multiout.dig_out_nid = 0; 3210 spec->multiout.dig_out_nid = AD1884_SPDIF_OUT;
3201 spec->input_mux = &ad1984_thinkpad_capture_source; 3211 spec->input_mux = &ad1984_thinkpad_capture_source;
3202 spec->mixers[0] = ad1984_thinkpad_mixers; 3212 spec->mixers[0] = ad1984_thinkpad_mixers;
3203 spec->init_verbs[spec->num_init_verbs++] = ad1984_thinkpad_init_verbs; 3213 spec->init_verbs[spec->num_init_verbs++] = ad1984_thinkpad_init_verbs;