ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
authorJerone Young <jerone.young@canonical.com>
Tue, 3 Aug 2010 06:46:44 +0000 (01:46 -0500)
committerTakashi Iwai <tiwai@suse.de>
Tue, 3 Aug 2010 06:57:47 +0000 (08:57 +0200)
Just as with the X301. The X300 does not have a way to do SPDIF either.
It does not have a dock connector, nor does it have the SPDIF through
the headphone jack.

This patch fixes it so X300 does not show SPDIF, since it cannot do it.

To add all Lenovo Thinkpads had different codec subsytem IDs:

X300:
http://launchpadlibrarian.net/34862838/Card0.Codecs.codec.0.txt

Signed-off-by: Jerone Young <jerone.young@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_analog.c

index afbe314a5bf33d3e414749314dbb75255e11124d..b697fd2a6f8b8cd19a84840fd8e05369226981db 100644 (file)
@@ -3662,7 +3662,12 @@ 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 = AD1884_SPDIF_OUT;
+               if (codec->subsystem_id == 0x17aa20fb) {
+                       /* Thinpad X300 does not have the ability to do SPDIF,
+                          or attach to docking station to use SPDIF */
+                       spec->multiout.dig_out_nid = 0;
+               } else
+                       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;