ACK: [SRU][C][PATCH] ALSA: hda/realtek: Disable PC beep in passthrough on alc285
Khaled Elmously
khalid.elmously at canonical.com
Sun Mar 3 23:48:39 UTC 2019
On 2019-02-22 16:54:11 , 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 at vger.kernel.org>
> Signed-off-by: Kailang Yang <kailang at realtek.com>
> Signed-off-by: Hui Wang <hui.wang at canonical.com>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> (backported from commit c8c6ee611926685a7d753409e0a6e48b9e1b8748
> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git)
> Signed-off-by: Hui Wang <hui.wang at canonical.com>
> ---
> sound/pci/hda/patch_realtek.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 4572b94d9d11..135f7f690908 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -5541,6 +5541,7 @@ enum {
> ALC295_FIXUP_HP_X360,
> ALC221_FIXUP_HP_HEADSET_MIC,
> ALC285_FIXUP_LENOVO_HEADPHONE_NOISE,
> + ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
> };
>
> static const struct hda_fixup alc269_fixups[] = {
> @@ -6435,6 +6436,17 @@ static const struct hda_fixup alc269_fixups[] = {
> .chained = true,
> .chain_id = ALC269_FIXUP_THINKPAD_ACPI
> },
> + [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[] = {
> @@ -7025,7 +7037,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},
Acked-by: Khalid Elmously <khalid.elmously at canonical.com>
More information about the kernel-team
mailing list