Merge branch 'fix/hda' into for-linus

+17 -6
+1
sound/pci/hda/patch_analog.c
··· 3641 3641 /* Lenovo Thinkpad T61/X61 */ 3642 3642 SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo Thinkpad", AD1984_THINKPAD), 3643 3643 SND_PCI_QUIRK(0x1028, 0x0214, "Dell T3400", AD1984_DELL_DESKTOP), 3644 + SND_PCI_QUIRK(0x1028, 0x0233, "Dell Latitude E6400", AD1984_DELL_DESKTOP), 3644 3645 {} 3645 3646 }; 3646 3647
+16 -6
sound/pci/hda/patch_realtek.c
··· 1594 1594 } 1595 1595 1596 1596 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 + } 1603 1613 } 1604 1614 } 1605 1615