ALSA: hda - Check the external mic pin more strictly for Conexant chips
authorTakashi Iwai <tiwai@suse.de>
Fri, 17 Sep 2010 12:45:14 +0000 (14:45 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 17 Sep 2010 12:45:14 +0000 (14:45 +0200)
The external mic jack for auto-mic switch must be really an external
jack and with a presense-detection capability.  This patch makes the
check more paranoia.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_conexant.c

index 09d573c59bef7edbb47a4d5fd99c6b3890ee0eca..a6c68cb06ddb04644ab7c49172dc5d01f08c2c3d 100644 (file)
@@ -3475,7 +3475,8 @@ static int is_ext_mic(struct hda_codec *codec, hda_nid_t pin)
 {
        unsigned int def_conf = snd_hda_codec_get_pincfg(codec, pin);
        return get_defcfg_device(def_conf) == AC_JACK_MIC_IN &&
-               snd_hda_get_input_pin_attr(def_conf) != INPUT_PIN_ATTR_INT;
+               snd_hda_get_input_pin_attr(def_conf) >= INPUT_PIN_ATTR_NORMAL &&
+               (snd_hda_query_pin_caps(codec, pin) & AC_PINCAP_PRES_DETECT);
 }
 
 /* check whether the pin config is suitable for auto-mic switching;