[alsa-devel] Dell AIO speaker pop noise

Kailang kailang at realtek.com
Tue Apr 16 15:52:07 CEST 2019



> -----Original Message-----
> From: Takashi Iwai <tiwai at suse.de>
> Sent: Tuesday, April 16, 2019 7:58 PM
> To: hwang4 <hui.wang at canonical.com>
> Cc: (alsa-devel at alsa-project.org) <alsa-devel at alsa-project.org>; Kailang
> <kailang at realtek.com>
> Subject: Re: [alsa-devel] Dell AIO speaker pop noise
> 
> 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
> >     };
> >

I described the EAPD usage.
It just need to set NID 0x14 to eapd on.
0x15 0x17 also could let EAPD on. (0x0f and 0x10 was support by very old codec ALC260)
If it need to turn on eapd to enable external AMP or speaker, it only could setup one NID to turn on EAPD.
	
> > 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
> 
> ------Please consider the environment before printing this e-mail.


More information about the Alsa-devel mailing list