From ebf00c54a6e1be0ae25d41236a063747c74ed5bf Mon Sep 17 00:00:00 2001 From: Jerone Young Date: Mon, 7 Jan 2008 12:22:18 +0100 Subject: [PATCH] [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 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_analog.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 0fa5f00edb..67144dce90 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[] = { .get = ad198x_mux_enum_get, .put = ad198x_mux_enum_put, }, + /* SPDIF controls */ + HDA_CODEC_VOLUME("IEC958 Playback Volume", 0x1b, 0x0, HDA_OUTPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source", + /* identical with ad1983 */ + .info = ad1983_spdif_route_info, + .get = ad1983_spdif_route_get, + .put = ad1983_spdif_route_put, + }, { } /* end */ }; @@ -3197,7 +3207,7 @@ static int patch_ad1984(struct hda_codec *codec) codec->patch_ops.build_pcms = ad1984_build_pcms; break; case AD1984_THINKPAD: - spec->multiout.dig_out_nid = 0; + spec->multiout.dig_out_nid = AD1884_SPDIF_OUT; spec->input_mux = &ad1984_thinkpad_capture_source; spec->mixers[0] = ad1984_thinkpad_mixers; spec->init_verbs[spec->num_init_verbs++] = ad1984_thinkpad_init_verbs; -- 2.39.5