diff mbox series

[v2] ALSA: hda/realtek: Chain in pop reduction fixup for ThinkStation P340

Message ID 20210524192437.27838-1-peter.ujfalusi@linux.intel.com
State New
Headers show
Series [v2] ALSA: hda/realtek: Chain in pop reduction fixup for ThinkStation P340 | expand

Commit Message

Peter Ujfalusi May 24, 2021, 7:24 p.m. UTC
Lenovo ThinkStation P340 uses ALC623 codec (SSID 17aa:1048) and it produces
bug plock/pop noise over line out (green jack on the back) which can be
fixed by applying ALC269_FIXUP_NO_SHUTUP tot he machine.

Convert the existing entry for the same SSID to chain to apply this fixup
as well.

Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
---
Hi Takashi,

Changes since v1
- instead of deny_list use chained fixup to fix the plock/pop noise

Changes since RFC:
- Fixed up the PCI ID

ever since I have this workstation (three weeks) the plock/pop noise on playback
start bugged me. So far the only solution I have found is to disable the
power_save which I find acceptable on a desktop compared to the pops.

The alsa-info.sh output is can be found here:
http://alsa-project.org/db/?f=414b1b236fc73db386ad4f938bc3b304f6b30b05

Missing details from alsa-info output:
# lspci -nnk | grep -A2 Audio
00:1f.3 Audio device [0403]: Intel Corporation Comet Lake PCH cAVS [8086:06c8]
        DeviceName: Onboard - Sound
        Subsystem: Lenovo Device [17aa:1048]

CPU: i9-10900k

The machine have ALC623 codec and the jacks are correctly discovered and they
do what they supposed to be.
When I have the headset connected to the front and audio is routed there the
line out (green jack) from the back still prodices the plock/pop.

Is there a known quirk for similar issue or a better way to handle it?

[1] https://lore.kernel.org/alsa-devel/20210524152533.7479-1-peter.ujfalusi@linux.intel.com/

Thanks you,
Peter Ujfalusi

 sound/pci/hda/patch_realtek.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Takashi Iwai May 25, 2021, 11:09 a.m. UTC | #1
On Mon, 24 May 2021 21:24:37 +0200,
Peter Ujfalusi wrote:
> 
> Lenovo ThinkStation P340 uses ALC623 codec (SSID 17aa:1048) and it produces
> bug plock/pop noise over line out (green jack on the back) which can be
> fixed by applying ALC269_FIXUP_NO_SHUTUP tot he machine.
> 
> Convert the existing entry for the same SSID to chain to apply this fixup
> as well.
> 
> Suggested-by: Takashi Iwai <tiwai@suse.de>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>

The patch looks good, but it doesn't seem applied cleanly on top of
the latest Linus or sound.git for-linus branch.  Could you rebase and
resubmit?


thanks,

Takashi


> ---
> Hi Takashi,
> 
> Changes since v1
> - instead of deny_list use chained fixup to fix the plock/pop noise
> 
> Changes since RFC:
> - Fixed up the PCI ID
> 
> ever since I have this workstation (three weeks) the plock/pop noise on playback
> start bugged me. So far the only solution I have found is to disable the
> power_save which I find acceptable on a desktop compared to the pops.
> 
> The alsa-info.sh output is can be found here:
> http://alsa-project.org/db/?f=414b1b236fc73db386ad4f938bc3b304f6b30b05
> 
> Missing details from alsa-info output:
> # lspci -nnk | grep -A2 Audio
> 00:1f.3 Audio device [0403]: Intel Corporation Comet Lake PCH cAVS [8086:06c8]
>         DeviceName: Onboard - Sound
>         Subsystem: Lenovo Device [17aa:1048]
> 
> CPU: i9-10900k
> 
> The machine have ALC623 codec and the jacks are correctly discovered and they
> do what they supposed to be.
> When I have the headset connected to the front and audio is routed there the
> line out (green jack) from the back still prodices the plock/pop.
> 
> Is there a known quirk for similar issue or a better way to handle it?
> 
> [1] https://lore.kernel.org/alsa-devel/20210524152533.7479-1-peter.ujfalusi@linux.intel.com/
> 
> Thanks you,
> Peter Ujfalusi
> 
>  sound/pci/hda/patch_realtek.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 3e269de84079..e2e0ee7b137d 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -6543,6 +6543,7 @@ enum {
>  	ALC295_FIXUP_ASUS_DACS,
>  	ALC295_FIXUP_HP_OMEN,
>  	ALC285_FIXUP_HP_SPECTRE_X360,
> +	ALC623_FIXUP_LENOVO_THINKSTATION_P340,
>  };
>  
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -8109,6 +8110,12 @@ static const struct hda_fixup alc269_fixups[] = {
>  		.chained = true,
>  		.chain_id = ALC285_FIXUP_SPEAKER2_TO_DAC1,
>  	},
> +	[ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = alc_fixup_no_shutup,
> +		.chained = true,
> +		.chain_id = ALC283_FIXUP_HEADSET_MIC,
> +	},
>  };
>  
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -8412,7 +8419,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x1558, 0x971d, "Clevo N970T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
>  	SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL53RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
>  	SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC233_FIXUP_LENOVO_MULTI_CODECS),
> -	SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
> +	SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
>  	SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
>  	SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE),
>  	SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
> @@ -8677,6 +8684,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
>  	{.id = ALC245_FIXUP_HP_X360_AMP, .name = "alc245-hp-x360-amp"},
>  	{.id = ALC295_FIXUP_HP_OMEN, .name = "alc295-hp-omen"},
>  	{.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"},
> +	{.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"},
>  	{}
>  };
>  #define ALC225_STANDARD_PINS \
> -- 
> 2.31.1
>
diff mbox series

Patch

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 3e269de84079..e2e0ee7b137d 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6543,6 +6543,7 @@  enum {
 	ALC295_FIXUP_ASUS_DACS,
 	ALC295_FIXUP_HP_OMEN,
 	ALC285_FIXUP_HP_SPECTRE_X360,
+	ALC623_FIXUP_LENOVO_THINKSTATION_P340,
 };
 
 static const struct hda_fixup alc269_fixups[] = {
@@ -8109,6 +8110,12 @@  static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC285_FIXUP_SPEAKER2_TO_DAC1,
 	},
+	[ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc_fixup_no_shutup,
+		.chained = true,
+		.chain_id = ALC283_FIXUP_HEADSET_MIC,
+	},
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -8412,7 +8419,7 @@  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x1558, 0x971d, "Clevo N970T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL53RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC233_FIXUP_LENOVO_MULTI_CODECS),
-	SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
+	SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
 	SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
 	SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE),
 	SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
@@ -8677,6 +8684,7 @@  static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC245_FIXUP_HP_X360_AMP, .name = "alc245-hp-x360-amp"},
 	{.id = ALC295_FIXUP_HP_OMEN, .name = "alc295-hp-omen"},
 	{.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"},
+	{.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"},
 	{}
 };
 #define ALC225_STANDARD_PINS \