Merge branch 'fix/hda' into for-linus

This commit is contained in:
Takashi Iwai 2010-09-25 17:57:53 +02:00
commit 3b23cd2875
2 changed files with 17 additions and 6 deletions

View file

@ -3641,6 +3641,7 @@ static struct snd_pci_quirk ad1984_cfg_tbl[] = {
/* Lenovo Thinkpad T61/X61 */ /* Lenovo Thinkpad T61/X61 */
SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo Thinkpad", AD1984_THINKPAD), SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo Thinkpad", AD1984_THINKPAD),
SND_PCI_QUIRK(0x1028, 0x0214, "Dell T3400", AD1984_DELL_DESKTOP), SND_PCI_QUIRK(0x1028, 0x0214, "Dell T3400", AD1984_DELL_DESKTOP),
SND_PCI_QUIRK(0x1028, 0x0233, "Dell Latitude E6400", AD1984_DELL_DESKTOP),
{} {}
}; };

View file

@ -1594,12 +1594,22 @@ static void alc_auto_parse_digital(struct hda_codec *codec)
} }
if (spec->autocfg.dig_in_pin) { if (spec->autocfg.dig_in_pin) {
hda_nid_t dig_nid; dig_nid = codec->start_nid;
err = snd_hda_get_connections(codec, for (i = 0; i < codec->num_nodes; i++, dig_nid++) {
spec->autocfg.dig_in_pin, unsigned int wcaps = get_wcaps(codec, dig_nid);
&dig_nid, 1); if (get_wcaps_type(wcaps) != AC_WID_AUD_IN)
if (err > 0) continue;
spec->dig_in_nid = dig_nid; if (!(wcaps & AC_WCAP_DIGITAL))
continue;
if (!(wcaps & AC_WCAP_CONN_LIST))
continue;
err = get_connection_index(codec, dig_nid,
spec->autocfg.dig_in_pin);
if (err >= 0) {
spec->dig_in_nid = dig_nid;
break;
}
}
} }
} }