@@ -3257,7 +3257,8 @@ static int create_input_ctls(struct hda_codec *codec)
continue;
val = PIN_IN;
- if (cfg->inputs[i].type == AUTO_PIN_MIC)
+ if (cfg->inputs[i].type == AUTO_PIN_MIC &&
+ !spec->suppress_hp_mic_detect)
val |= snd_hda_get_default_vref(codec, pin);
if (pin != spec->hp_mic_pin)
set_pin_target(codec, pin, val, false);
@@ -4062,6 +4062,7 @@ static void alc_fixup_headset_mode(struct hda_codec *codec,
switch (action) {
case HDA_FIXUP_ACT_PRE_PROBE:
+ spec->gen.suppress_hp_mic_detect = 1;
spec->parse_flags |= HDA_PINCFG_HEADSET_MIC | HDA_PINCFG_HEADPHONE_MIC;
break;
case HDA_FIXUP_ACT_PROBE: