[alsa-devel] [PATCH] ALSA: hda - Disable Headphone Mic boost for ALC662
When headphone mic boost is above zero, some 10 - 20 second delay might occur before the headphone mic is operational. Therefore disable the headphone mic boost control (recording gain is sufficient even without it).
(Note: this patch is not about the headset mic, it's about the less common mic-in only mode.)
BugLink: https://bugs.launchpad.net/bugs/1454235 Suggested-by: Kailang Yang kailang@realtek.com Signed-off-by: David Henningsson david.henningsson@canonical.com --- sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d0fa455..87605fc 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4240,6 +4240,10 @@ static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, if (action == HDA_FIXUP_ACT_PRE_PROBE) { spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ + + /* Disable boost for mic-in permanently */ + snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000); + snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP); } else alc_fixup_headset_mode(codec, fix, action); }
At Thu, 28 May 2015 09:15:46 +0200, David Henningsson wrote:
When headphone mic boost is above zero, some 10 - 20 second delay might occur before the headphone mic is operational. Therefore disable the headphone mic boost control (recording gain is sufficient even without it).
(Note: this patch is not about the headset mic, it's about the less common mic-in only mode.)
BugLink: https://bugs.launchpad.net/bugs/1454235 Suggested-by: Kailang Yang kailang@realtek.com Signed-off-by: David Henningsson david.henningsson@canonical.com
sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d0fa455..87605fc 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4240,6 +4240,10 @@ static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, if (action == HDA_FIXUP_ACT_PRE_PROBE) { spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */
/* Disable boost for mic-in permanently */
snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000);
snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP);
Can we really hard-code NID 0x1b here...?
Takashi
On 2015-05-28 09:18, Takashi Iwai wrote:
At Thu, 28 May 2015 09:15:46 +0200, David Henningsson wrote:
When headphone mic boost is above zero, some 10 - 20 second delay might occur before the headphone mic is operational. Therefore disable the headphone mic boost control (recording gain is sufficient even without it).
(Note: this patch is not about the headset mic, it's about the less common mic-in only mode.)
BugLink: https://bugs.launchpad.net/bugs/1454235 Suggested-by: Kailang Yang kailang@realtek.com Signed-off-by: David Henningsson david.henningsson@canonical.com
sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d0fa455..87605fc 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4240,6 +4240,10 @@ static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, if (action == HDA_FIXUP_ACT_PRE_PROBE) { spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */
/* Disable boost for mic-in permanently */
snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000);
snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP);
Can we really hard-code NID 0x1b here...?
alc_fixup_headset_mode_alc662 is currently only called from a pin fixup quirk (via ALC662_FIXUP_DELL_MIC_NO_PRESENCE), and that pin quirk has headphone at 0x1b, so yes.
It would we better if we could make it more generic, but I think doing this at HDA_FIXUP_PROBE instead would be too late (the boost control, paths, etc, would already be created)...?
Do you have a better suggestion?
At Thu, 28 May 2015 09:25:41 +0200, David Henningsson wrote:
On 2015-05-28 09:18, Takashi Iwai wrote:
At Thu, 28 May 2015 09:15:46 +0200, David Henningsson wrote:
When headphone mic boost is above zero, some 10 - 20 second delay might occur before the headphone mic is operational. Therefore disable the headphone mic boost control (recording gain is sufficient even without it).
(Note: this patch is not about the headset mic, it's about the less common mic-in only mode.)
BugLink: https://bugs.launchpad.net/bugs/1454235 Suggested-by: Kailang Yang kailang@realtek.com Signed-off-by: David Henningsson david.henningsson@canonical.com
sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d0fa455..87605fc 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4240,6 +4240,10 @@ static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, if (action == HDA_FIXUP_ACT_PRE_PROBE) { spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */
/* Disable boost for mic-in permanently */
snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000);
snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP);
Can we really hard-code NID 0x1b here...?
alc_fixup_headset_mode_alc662 is currently only called from a pin fixup quirk (via ALC662_FIXUP_DELL_MIC_NO_PRESENCE), and that pin quirk has headphone at 0x1b, so yes.
OK, then it'd be better to mention the assumption briefly in a comment.
It would we better if we could make it more generic, but I think doing this at HDA_FIXUP_PROBE instead would be too late (the boost control, paths, etc, would already be created)...?
Right.
Do you have a better suggestion?
I think the current form is OK, but I wanted to make sure.
Takashi
participants (2)
-
David Henningsson
-
Takashi Iwai