Skip to content

Commit 3b23cd2

Browse files
committed
Merge branch 'fix/hda' into for-linus
2 parents b614e38 + 01fdf18 commit 3b23cd2

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

sound/pci/hda/patch_analog.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3641,6 +3641,7 @@ static struct snd_pci_quirk ad1984_cfg_tbl[] = {
36413641
/* Lenovo Thinkpad T61/X61 */
36423642
SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo Thinkpad", AD1984_THINKPAD),
36433643
SND_PCI_QUIRK(0x1028, 0x0214, "Dell T3400", AD1984_DELL_DESKTOP),
3644+
SND_PCI_QUIRK(0x1028, 0x0233, "Dell Latitude E6400", AD1984_DELL_DESKTOP),
36443645
{}
36453646
};
36463647

sound/pci/hda/patch_realtek.c

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,12 +1594,22 @@ static void alc_auto_parse_digital(struct hda_codec *codec)
15941594
}
15951595

15961596
if (spec->autocfg.dig_in_pin) {
1597-
hda_nid_t dig_nid;
1598-
err = snd_hda_get_connections(codec,
1599-
spec->autocfg.dig_in_pin,
1600-
&dig_nid, 1);
1601-
if (err > 0)
1602-
spec->dig_in_nid = dig_nid;
1597+
dig_nid = codec->start_nid;
1598+
for (i = 0; i < codec->num_nodes; i++, dig_nid++) {
1599+
unsigned int wcaps = get_wcaps(codec, dig_nid);
1600+
if (get_wcaps_type(wcaps) != AC_WID_AUD_IN)
1601+
continue;
1602+
if (!(wcaps & AC_WCAP_DIGITAL))
1603+
continue;
1604+
if (!(wcaps & AC_WCAP_CONN_LIST))
1605+
continue;
1606+
err = get_connection_index(codec, dig_nid,
1607+
spec->autocfg.dig_in_pin);
1608+
if (err >= 0) {
1609+
spec->dig_in_nid = dig_nid;
1610+
break;
1611+
}
1612+
}
16031613
}
16041614
}
16051615

0 commit comments

Comments
 (0)