From: Takashi Iwai Date: Sat, 7 Apr 2012 10:26:55 +0000 (+0200) Subject: Merge branch 'fix/hda' into topic/hda X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=5ff5c3a4ab0d638fa63e939e75727c233b681e8d;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'fix/hda' into topic/hda Conflicts: sound/pci/hda/patch_conexant.c --- 5ff5c3a4ab0d638fa63e939e75727c233b681e8d diff --cc sound/pci/hda/patch_conexant.c index 213fb80c11f5,3848711d89f7..cbe115b6c80c --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@@ -141,8 -141,6 +141,7 @@@ struct conexant_spec unsigned int hp_laptop:1; unsigned int asus:1; unsigned int pin_eapd_ctrls:1; - unsigned int single_adc_amp:1; + unsigned int fixup_stereo_dmic:1; unsigned int adc_switching:1; @@@ -4252,20 -4192,10 +4224,20 @@@ static int cx_auto_add_capture_volume(s int idx = get_input_connection(codec, adc_nid, nid); if (idx < 0) continue; - if (spec->single_adc_amp) + if (codec->single_adc_amp) idx = 0; + + if (cx_auto_get_rightch_label(codec, label, rightch_label, nid)) { + /* Make two independent kcontrols for left and right */ + int err = cx_auto_add_volume_idx(codec, label, pfx, + cidx, adc_nid, HDA_INPUT, idx, 1); + if (err < 0) + return err; + return cx_auto_add_volume_idx(codec, rightch_label, pfx, + cidx, adc_nid, HDA_INPUT, idx, 2); + } return cx_auto_add_volume_idx(codec, label, pfx, - cidx, adc_nid, HDA_INPUT, idx); + cidx, adc_nid, HDA_INPUT, idx, 3); } return 0; } @@@ -4536,10 -4445,13 +4507,13 @@@ static int patch_conexant_auto(struct h break; case 0x14f15051: add_cx5051_fake_mutes(codec); + codec->pin_amp_workaround = 1; break; + default: + codec->pin_amp_workaround = 1; } - apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl); + apply_fixup(codec, cxt_fixups, cxt_pincfg_tbl); /* Show mute-led control only on HP laptops * This is a sort of white-list: on HP laptops, EAPD corresponds