ALSA: hda - Disable broken mic auto-muting in Realtek codes
The recent addition of automatic mic-muting is broken in some cases. The code assumes that the pin nids <= 0x18, but the digital pins can be less than 0x18. Also, it assumes the front-mic being the internal mic, but it depends on the hardware implementation actually. Instead of complex case-fixes, better to disable the code as now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
0cbf00980f
commit
4605b718e8
@ -829,6 +829,7 @@ static void alc_sku_automute(struct hda_codec *codec)
|
|||||||
spec->jack_present ? 0 : PIN_OUT);
|
spec->jack_present ? 0 : PIN_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 /* it's broken in some acses -- temporarily disabled */
|
||||||
static void alc_mic_automute(struct hda_codec *codec)
|
static void alc_mic_automute(struct hda_codec *codec)
|
||||||
{
|
{
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
@ -849,6 +850,9 @@ static void alc_mic_automute(struct hda_codec *codec)
|
|||||||
snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic,
|
snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic,
|
||||||
HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0);
|
HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
#define alc_mic_automute(codec) /* NOP */
|
||||||
|
#endif /* disabled */
|
||||||
|
|
||||||
/* unsolicited event for HP jack sensing */
|
/* unsolicited event for HP jack sensing */
|
||||||
static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res)
|
static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res)
|
||||||
@ -1058,12 +1062,14 @@ do_sku:
|
|||||||
AC_VERB_SET_UNSOLICITED_ENABLE,
|
AC_VERB_SET_UNSOLICITED_ENABLE,
|
||||||
AC_USRSP_EN | ALC880_HP_EVENT);
|
AC_USRSP_EN | ALC880_HP_EVENT);
|
||||||
|
|
||||||
|
#if 0 /* it's broken in some acses -- temporarily disabled */
|
||||||
if (spec->autocfg.input_pins[AUTO_PIN_MIC] &&
|
if (spec->autocfg.input_pins[AUTO_PIN_MIC] &&
|
||||||
spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC])
|
spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC])
|
||||||
snd_hda_codec_write(codec,
|
snd_hda_codec_write(codec,
|
||||||
spec->autocfg.input_pins[AUTO_PIN_MIC], 0,
|
spec->autocfg.input_pins[AUTO_PIN_MIC], 0,
|
||||||
AC_VERB_SET_UNSOLICITED_ENABLE,
|
AC_VERB_SET_UNSOLICITED_ENABLE,
|
||||||
AC_USRSP_EN | ALC880_MIC_EVENT);
|
AC_USRSP_EN | ALC880_MIC_EVENT);
|
||||||
|
#endif /* disabled */
|
||||||
|
|
||||||
spec->unsol_event = alc_sku_unsol_event;
|
spec->unsol_event = alc_sku_unsol_event;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user