From: Takashi Iwai Date: Sat, 7 Apr 2012 10:26:55 +0000 (+0200) Subject: Merge branch 'fix/hda' into topic/hda X-Git-Tag: upstream/snapshot3+hdmi~7307^2~8^2~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ff5c3a4ab0d638fa63e939e75727c233b681e8d;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.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 213fb80,3848711..cbe115b --- 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