Message ID | 1432797346-2742-1-git-send-email-david.henningsson@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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); }
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(+)