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