[alsa-devel] Dell AIO speaker pop noise

Takashi Iwai tiwai at suse.de
Tue Apr 16 13:57:54 CEST 2019


On Tue, 16 Apr 2019 13:26:47 +0200,
hwang4 wrote:
> 
> 
> On 2019/4/16 下午5:43, Takashi Iwai wrote:
> > On Tue, 16 Apr 2019 11:31:22 +0200,
> > hwang4 wrote:
> >>
> >> On 2019/4/16 下午4:59, Kailang wrote:
> >>>> -----Original Message-----
> >>>> From: Takashi Iwai <tiwai at suse.de>
> >>>> Sent: Tuesday, April 16, 2019 4:22 PM
> >>>> To: Jaroslav Kysela <perex at perex.cz>
> >>>> Cc: Kailang <kailang at realtek.com>; hwang4 <hui.wang at canonical.com>;
> >>>> (alsa-devel at alsa-project.org) <alsa-devel at alsa-project.org>
> >>>> Subject: Re: [alsa-devel] Dell AIO speaker pop noise
> >>>>
> >>>> On Tue, 16 Apr 2019 10:01:31 +0200,
> >>>> Jaroslav Kysela wrote:
> >>>>> Dne 16. 04. 19 v 9:30 Kailang napsal(a):
> >>>>>> Hi Takashi,
> >>>>>>
> >>>>>> Issue 1: The noise keeps occurring via speaker when Headset is plugged in.
> >>>>>> Issue 2: The humming noise is occuring when switching to sound of
> >>>> settings.
> >>>>>> 	 The noise will be stopped when switching to other options of settings.
> >>>>>> Issue 3: The popping noise occurred for one second when plugged in and
> >>>> removed the headset.
> >>>>>> This patch will solve this three issues.
> >>>>> Hi,
> >>>>>
> >>>>>     could you explain, why the power-save function causes this
> >>>>> behaviour? Can we do something else than turning off the power-save
> >>>>> codec settings to avoid such noises? I have this question because it's really
> >>>> easy to disable something, but I feel that the culprit of the noises might be just
> >>>> the wrong codec settings. I guess that you have probably full documentation
> >>>> for the codec and probably for the hardware, so it might be nice to find the
> >>>> real culprit.
> >>>>
> >>>> Note that power_save_node=0 doesn't mean that the whole power saving is
> >>>> disabled.  It disables the fine-grained power saving, i.e. powering down the
> >>>> unused widget nodes.
> >>>>
> >>>> If so, I wonder whether this might be about the default pin-shutup behavior.  I
> >>>> improved the click noise problem on my Dell desktop by disabling the pin
> >>>> shutup.  See commit c0ca5eced222.
> >>>> Kailang, Hui, did you try to add the chain to ALC269_FIXUP_NO_SHUTUP?
> >>>>
> >>> This noise was not happen on poweroff.
> >>> AIO use external AMP. So, it will be need to have a reference voltage via codec.
> >>> So, Pin-ctls was not be 0. I apply option spec->gen.suppress_auto_mute = 1 to avoid that.
> >>> Internal SPK PIN also don't enter to D3. But I find it just only happen on ALC274 family codecs.
> >>> ALC274 pin enter to D3. Pin-ctls also be 0. So, power_save_node=0 will let PIN to D0.
> >>>
> >>> power_save = 0 it also could solve issue.
> >>
> >> Yes, avoid setting pinctl is only part fix, the ODM said the main
> >> problem is the EAPD pin is high->low->high->low periodically, it has
> >> sth to do with the widget node power state.
> > FWIW, there is also spec->gen.keep_eapd_on=1 that prevents the EAPD
> > toggle at power saving.
> 
> Got it, but does it prevent Nodes or the whole codec from entering D3?
> 
> Here the EADP is low, it is not because the set_eapd() is called, I
> checked the EAPD of all nodes, they are all 0x2 all the time. And
> patch_realtek already set the own_eapd_ctl=1, and the NID for speaker
> is 0x16, it is not in the:
> 
>     static hda_nid_t pins[] = {
>         0x0f, 0x10, 0x14, 0x15, 0x17, 0
>     };
> 
> So the driver will not set the eapd to 0 for speaker.

OK, right, with own_eapd_ctl, the flag change makes no sense.

> If
> keep_eapd_on=1 can prevent codec/nodes from entering D3, maybe it will
> help.

Actually it's possible to prevent the specific route (path) from the
dynamic power down, too.  You can look for the path and set
path->pin_fixed=1.  But it'd be a bit too tricky and complex.


Takashi


More information about the Alsa-devel mailing list