Message ID | 20190222103307.9691-5-hui.wang@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,unstable,v2] ALSA: hda/realtek: Disable PC beep in passthrough on alc285 | expand |
On Fri, Feb 22, 2019 at 06:33:07PM +0800, Hui Wang wrote: > BugLink: http://bugs.launchpad.net/bugs/1817263 > > It is reported that there's a constant background "hum/whitenoise" > in the headset on the Lenovo X1 machines with the codec alc285, and it > is confirmed that if we run the command below, the noise will stop. > sudo hda-verb /dev/snd/hwC0D0 0x1d SET_PIN_WIDGET_CONTROL 0x0 > > Then I consulted this issue with Kailang, he told me the pin 0x1d on > this codec is used for PC beep in, the noise probably comes from this > pin and we can also disable the PC beep in passthrough, then the PC > beep in will not affect other sound playback. > > Fixes: c4cfcf6f4297 ("ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops") > Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1660581 > Cc: <stable@vger.kernel.org> > Signed-off-by: Kailang Yang <kailang@realtek.com> > Signed-off-by: Hui Wang <hui.wang@canonical.com> > Signed-off-by: Takashi Iwai <tiwai@suse.de> > (cherry picked from commit c8c6ee611926685a7d753409e0a6e48b9e1b8748 > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git) > Signed-off-by: Hui Wang <hui.wang@canonical.com> I already applied to unstable from the v1 patches, but this looks to be identical.
On 2019/2/22 下午6:51, Seth Forshee wrote: > On Fri, Feb 22, 2019 at 06:33:07PM +0800, Hui Wang wrote: >> BugLink: http://bugs.launchpad.net/bugs/1817263 >> >> It is reported that there's a constant background "hum/whitenoise" >> in the headset on the Lenovo X1 machines with the codec alc285, and it >> is confirmed that if we run the command below, the noise will stop. >> sudo hda-verb /dev/snd/hwC0D0 0x1d SET_PIN_WIDGET_CONTROL 0x0 >> >> Then I consulted this issue with Kailang, he told me the pin 0x1d on >> this codec is used for PC beep in, the noise probably comes from this >> pin and we can also disable the PC beep in passthrough, then the PC >> beep in will not affect other sound playback. >> >> Fixes: c4cfcf6f4297 ("ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops") >> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1660581 >> Cc: <stable@vger.kernel.org> >> Signed-off-by: Kailang Yang <kailang@realtek.com> >> Signed-off-by: Hui Wang <hui.wang@canonical.com> >> Signed-off-by: Takashi Iwai <tiwai@suse.de> >> (cherry picked from commit c8c6ee611926685a7d753409e0a6e48b9e1b8748 >> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git) >> Signed-off-by: Hui Wang <hui.wang@canonical.com> > I already applied to unstable from the v1 patches, but this looks to be > identical. > Yes, it is identical. In the v2, only the patch 0001-xxx.patch for Disco is changed, others are identical to v1.
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 3ce318a3086d..1ffa36e987b4 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5660,6 +5660,7 @@ enum { ALC294_FIXUP_ASUS_SPK, ALC225_FIXUP_HEADSET_JACK, ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE, + ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE, }; static const struct hda_fixup alc269_fixups[] = { @@ -6615,6 +6616,17 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + /* Disable PCBEEP-IN passthrough */ + { 0x20, AC_VERB_SET_COEF_INDEX, 0x36 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 }, + { } + }, + .chained = true, + .chain_id = ALC285_FIXUP_LENOVO_HEADPHONE_NOISE + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -7300,7 +7312,7 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x12, 0x90a60130}, {0x19, 0x03a11020}, {0x21, 0x0321101f}), - SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_HEADPHONE_NOISE, + SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE, {0x12, 0x90a60130}, {0x14, 0x90170110}, {0x19, 0x04a11040},