Re: [PATCH] ALSA: hda/intel: Add quirk for TongFang devices with pop noise

From: Takashi Iwai
Date: Wed May 11 2022 - 10:09:24 EST


On Wed, 11 May 2022 15:58:03 +0200,
Werner Sembach wrote:
>
> Am 11.05.22 um 15:41 schrieb Takashi Iwai:
> > On Wed, 11 May 2022 15:38:28 +0200,
> > Werner Sembach wrote:
> >> When audio stops playing and sometimes when it starts playing, there is an
> >> audible "pop" noise when using headphones on most Tongfang GMxMxxx,
> >> GKxNxxx, GMxZxxx, GMxTxxx, and GMxAxxx devices.
> >>
> >> Disabling power saving for the Realtek codec fixes this noise. Presumably
> >> it is triggered on some power event in the audio circuit.
> >>
> >> Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
> >> Cc: stable@xxxxxxxxxxxxxxx
> > Usually this denylist is a last resort if any other methods never
> > helped. Is it the case?
>
> I also tried setting codec->power_save_node = 0; in a patch_realtek.c quirk.
>
> static void alc274_fixup_pop_noise(struct hda_codec *codec, const struct
> hda_fixup *fix, int action)
> {
>        codec->power_save_node = 0;
> }
>
> That initially seemed to work, but when I tested it again a day later
> after a fresh install, it didn't anymore. I don't know what is
> different. On the install before, I did some debugging with boot
> parameters and other stuff, cant reproduce anymore what exactly.

power_save_node is already 0 as default for patch_alc269(), so it must
be irrelevant.

> I took the line from alc274_fixup_bind_dacs which fixes the pop noise
> when applied to the devices, but does a lot of random other stuff too
> not meant for the device.

It's only one thing, there are tons of different fixes :)
alc274_fixup_bind_dacs() rather specifies the routing so that the
speaker is connected to the preferred DAC.

Many click noises come from the default pin shut-up behavior. You
can disable it or change it in other way. Also, setting
auto_mute_via_amp may influence on such behavior (that is included in
alc274_fixup_bind_dacs()).

Note that many quirks can be enabled even without compiling but via
the codec patch loading (using hints).


thanks,

Takashi