diff mbox series

ALSA: hda: Add Lenovo ThinkStation P340 to power_save_denylist

Message ID 20210524152533.7479-1-peter.ujfalusi@linux.intel.com
State Superseded
Headers show
Series ALSA: hda: Add Lenovo ThinkStation P340 to power_save_denylist | expand

Commit Message

Peter Ujfalusi May 24, 2021, 3:25 p.m. UTC
On playback start there is a huge plock/pop noise via the green jack used
in Line out mode.

The only way I was able to fix it to set the power_save to 0 for the
snd_hda_intel.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
---
Hi Takashi,

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?

Thanks you,
Peter Ujfalusi

 sound/pci/hda/hda_intel.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Takashi Iwai May 25, 2021, 7:19 a.m. UTC | #1
On Mon, 24 May 2021 17:25:33 +0200,
Peter Ujfalusi wrote:
> 
> On playback start there is a huge plock/pop noise via the green jack used
> in Line out mode.
> 
> The only way I was able to fix it to set the power_save to 0 for the
> snd_hda_intel.
> 
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
> ---
> Hi Takashi,
> 
> 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?

In general, this deny list is the last resort when we couldn't find
any other way to fix the click noise.  Let's check other possibilities
at first, e.g. setting auto_mute_via_amp flag.  This can be achieved
even via hints in an early patching specified via "patch" option of
snd-hda-intel module (see Documentation/sound/hda/notes.rst for some
information).


Takashi
Peter Ujfalusi May 25, 2021, 8:14 a.m. UTC | #2
On 5/25/2021 10:19 AM, Takashi Iwai wrote:
> On Mon, 24 May 2021 17:25:33 +0200,
> Peter Ujfalusi wrote:
>>
>> On playback start there is a huge plock/pop noise via the green jack used
>> in Line out mode.
>>
>> The only way I was able to fix it to set the power_save to 0 for the
>> snd_hda_intel.
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
>> ---
>> Hi Takashi,
>>
>> 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?
> 
> In general, this deny list is the last resort when we couldn't find
> any other way to fix the click noise.

Sure, I'm not that familiar yet with the HDA code base.

> Let's check other possibilities
> at first, e.g. setting auto_mute_via_amp flag.  This can be achieved
> even via hints in an early patching specified via "patch" option of
> snd-hda-intel module (see Documentation/sound/hda/notes.rst for some
> information).

Unfortunately the auto_mute_via_amp has no effect on the pop.
line_in_auto_switch and pin_amp_workaround have no effect either.

fwiw, a simple
cat /proc/asound/card0/codec#0

generates plock/pop.
Takashi Iwai May 25, 2021, 9:18 a.m. UTC | #3
On Tue, 25 May 2021 11:04:14 +0200,
Ujfalusi, Peter wrote:
> 
> 
> 
> On 5/25/2021 11:23 AM, Takashi Iwai wrote:
> >>> Let's check other possibilities
> >>> at first, e.g. setting auto_mute_via_amp flag.  This can be achieved
> >>> even via hints in an early patching specified via "patch" option of
> >>> snd-hda-intel module (see Documentation/sound/hda/notes.rst for some
> >>> information).
> >>
> >> Unfortunately the auto_mute_via_amp has no effect on the pop.
> >> line_in_auto_switch and pin_amp_workaround have no effect either.
> > 
> > How about applying alc_fixup_no_shutup() or alc_fixup_disable_aamix()?
> 
> it looks like
> 
> SND_PCI_QUIRK(0x17aa, 0x1048, "Lenovo ThinkStation P340",
> ALC269_FIXUP_NO_SHUTUP),
> 
> in alc269_fixup_tbl[]
> 
> alone fixes the pop noise, I'll send a new patch to do this instead.

Good to hear.

But, there is already a quirk entry for this ID, so you'll need to put
a chain there instead, I suppose.


Takashi
Peter Ujfalusi May 25, 2021, 10:30 a.m. UTC | #4
On 5/25/2021 12:18 PM, Takashi Iwai wrote:
> On Tue, 25 May 2021 11:04:14 +0200,
> Ujfalusi, Peter wrote:
>>
>>
>>
>> On 5/25/2021 11:23 AM, Takashi Iwai wrote:
>>>>> Let's check other possibilities
>>>>> at first, e.g. setting auto_mute_via_amp flag.  This can be achieved
>>>>> even via hints in an early patching specified via "patch" option of
>>>>> snd-hda-intel module (see Documentation/sound/hda/notes.rst for some
>>>>> information).
>>>>
>>>> Unfortunately the auto_mute_via_amp has no effect on the pop.
>>>> line_in_auto_switch and pin_amp_workaround have no effect either.
>>>
>>> How about applying alc_fixup_no_shutup() or alc_fixup_disable_aamix()?
>>
>> it looks like
>>
>> SND_PCI_QUIRK(0x17aa, 0x1048, "Lenovo ThinkStation P340",
>> ALC269_FIXUP_NO_SHUTUP),
>>
>> in alc269_fixup_tbl[]
>>
>> alone fixes the pop noise, I'll send a new patch to do this instead.
> 
> Good to hear.
> 
> But, there is already a quirk entry for this ID, so you'll need to put
> a chain there instead, I suppose.

Adding Hui Wang who added old fixup fir the mics.

Oh, I see.
It might be that the "ThinkCentre Station" is actually refers to
"ThinkStation P340" in that case I wonder if the plock/pop can be
observed by Hui Wang as well and confirm that it is the same model.

do you have any suggestion on naming the chain for the P340 headset-mic
and no-plop on lineout fixup enum/text/entry?
diff mbox series

Patch

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 79ade335c8a0..9cacd1cb211b 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2213,6 +2213,8 @@  static const struct snd_pci_quirk power_save_denylist[] = {
 	SND_PCI_QUIRK(0x17aa, 0x36a7, "Lenovo C50 All in one", 0),
 	/* https://bugs.launchpad.net/bugs/1821663 */
 	SND_PCI_QUIRK(0x1631, 0xe017, "Packard Bell NEC IMEDIA 5204", 0),
+	/* Loud plock/pop noise via the green jack on playback start */
+	SND_PCI_QUIRK(0x17aa, 0x1048, "Lenovo ThinkStation P340", 0),
 	{}
 };
 #endif /* CONFIG_PM */