Re: Audio crackles with 4.1-rc1

From: Takashi Iwai
Date: Wed Jun 10 2015 - 06:50:37 EST


At Wed, 10 Jun 2015 13:41:35 +0300,
Mihai DonÈu wrote:
>
> On Wed, 10 Jun 2015 12:22:53 +0200 Takashi Iwai wrote:
> > At Wed, 10 Jun 2015 13:17:55 +0300, Mihai DonÈu wrote:
> > > On Wed, 20 May 2015 07:01:12 +0200 Takashi Iwai wrote:
> > > > From: Takashi Iwai <tiwai@xxxxxxx>
> > > > Subject: [PATCH] ALSA: hda - Disable widget power-saving for ALC292 & co
> > > >
> > > > We've got reports that ALC3226 (a Dell variant of ALC292) gives click
> > > > noises at transition from D3 to D0 when the widget power-saving is
> > > > enabled. Further debugging session showed that avoiding it isn't
> > > > trivial, unfortunately, since paths are basically activated
> > > > dynamically while the pins have been already enabled.
> > > >
> > > > This patch disables the widget power-saving for such codecs.
> > > >
> > > > Reported-by: Jonathan McDowell <noodles@xxxxxxxx>
> > > > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> > > > ---
> > > > sound/pci/hda/patch_realtek.c | 3 ++-
> > > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> > > > index 2e246fe495f6..31f8f13be907 100644
> > > > --- a/sound/pci/hda/patch_realtek.c
> > > > +++ b/sound/pci/hda/patch_realtek.c
> > > > @@ -5623,7 +5623,8 @@ static int patch_alc269(struct hda_codec *codec)
> > > >
> > > > spec = codec->spec;
> > > > spec->gen.shared_mic_vref_pin = 0x18;
> > > > - codec->power_save_node = 1;
> > > > + if (codec->core.vendor_id != 0x10ec0292)
> > > > + codec->power_save_node = 1;
> > > >
> > > > snd_hda_pick_fixup(codec, alc269_fixup_models,
> > > > alc269_fixup_tbl, alc269_fixups);
> > >
> > > I'm on 4.1-rc7 which appears to contain this patch, however, I still
> > > get the audio artifacts (crackles) when I boot my laptop (Latitude
> > > E7440):
> > >
> > > [ 1.058839] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC3226: line_outs=1 (0x16/0x0/0x0/0x0/0x0) type:line
> > > [ 1.058843] snd_hda_codec_realtek hdaudioC1D0: speaker_outs=1 (0x14/0x0/0x0/0x0/0x0)
> > > [ 1.058846] snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
> > > [ 1.058849] snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0
> > > [ 1.058851] snd_hda_codec_realtek hdaudioC1D0: inputs:
> > > [ 1.058855] snd_hda_codec_realtek hdaudioC1D0: Dock Mic=0x19
> > > [ 1.058859] snd_hda_codec_realtek hdaudioC1D0: Headset Mic=0x1a
> > > [ 1.058862] snd_hda_codec_realtek hdaudioC1D0: Internal Mic=0x12
> > >
> > > 4.0.4 was fine.
> >
> > Does it happen only once at boot (i.e. at power up), or happens always
> > at runtime PM? If it's a once-off boot thing, the patch shouldn't
> > have much effect. Something else, very subtle thing, e.g. the order
> > of verb execution, might cause this kind of problem.
>
> Only at power up. I've also suspend-resumed twice and can confirm it's
> OK.
>
> There's a _very_ brief click at suspend (when the power is cut), but it
> looks like a plain circuitry thing. I probably didn't notice it before
> because I wasn't looking for it.

Thanks. Do you get the same click noise when reloading snd-hda-intel
driver? Also, does it happen when booting in runlevel 3?

Last but not least, a patch like below has any effect?


Takashi

---
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3077,6 +3077,8 @@ static unsigned int hda_set_power_state(struct hda_codec *codec,
break;
}

+ if (power_state == AC_PWRST_D0)
+ msleep(100);
return state;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/