Merge branch 'fix/hda' into topic/hda
authorTakashi Iwai <tiwai@suse.de>
Sat, 7 Apr 2012 10:26:55 +0000 (12:26 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sat, 7 Apr 2012 10:26:55 +0000 (12:26 +0200)
Conflicts:
sound/pci/hda/patch_conexant.c

1  2 
sound/pci/hda/patch_conexant.c

index 213fb80c11f5238a143c10bbb97f5b16ef616853,3848711d89f7d141de9b170ff5570fd41195b0cc..cbe115b6c80cf9036e6aaa7a69aa15a7f76a75d7
@@@ -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