[alsa-devel] [PATCH] ALSA: hda - Disable AA-loopback on ALC668

Takashi Iwai tiwai at suse.de
Wed May 21 11:10:49 CEST 2014


At Tue, 20 May 2014 18:58:26 +0200,
Gabriele Mazzotta wrote:
> 
> On Tuesday 20 May 2014 18:06:53, Takashi Iwai <tiwai at suse.de> wrote:
> > At Tue, 20 May 2014 17:59:30 +0200,
> > Gabriele Mazzotta wrote:
> > > 
> > > On Thursday 15 May 2014 21:56:23, Gabriele Mazzotta <gabriele.mzt at gmail.com> 
> > > wrote:
> > > > On Wednesday 14 May 2014 16:31:13, Gabriele Mazzotta 
> > > <gabriele.mzt at gmail.com> wrote:
> > > > I'm sorry, I was wrong. This patch does not help. I'm still trying to
> > > > understand what temporarily fixed the problem, I was quite sure this patch 
> > > did
> > > > it, but all of the sudden the noise came back. I'm still trying to find the
> > > > real cause, but I doubt I'll succeed.
> > > > 
> > > > Regards,
> > > > Gabriele
> > > I have to correct myself again, the first patch I submitted is working, I'm 
> > > sorry. However, it seems that disabling the AA-loopback path is not necessary, 
> > > muting the input 0x0b in node 0x0c (as it was suggested here: 
> > > https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1252733/comments/26) is enough to get rid of the white noise.
> > 
> > This reminds me of a similar problem reported on Sony VAIO.
> >   https://bugzilla.novell.com/show_bug.cgi?id=873704
> > 
> > The codec is different, it's ALC275, though.
> > 
> > > What is the proper way to fix this problem?
> > 
> > Just to be sure: does the mic input itself work correctly?
> 
> Unfortunately, I cannot test it.
> 
> > Maybe the easiest fix would be disabling the aamix, indeed.
> > But you shouldn't apply it generically to ALC668.  I'm sure that it's
> > pretty specific to machines, not codec chips.  So, create a fixup
> > function that matches with your machine instead.
> 
> Yes, you are probably right. All I know is that this bug affect the
> XPS13, XPS12 and XPS15.
> 
> Is the following patch OK?
> ---
> 
> 
> ALSA: hda - White noise fix for XPS13 9333
> 
> Disable the AA-loopback path to get rid of the constant white noise
> that can be heard when headphones are used.
> 
> Signed-off-by: Gabriele Mazzotta <gabriele.mzt at gmail.com>

Looks good, so applied now.  Thanks.


Takashi

> ---
>  sound/pci/hda/patch_realtek.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 49e884f..a2c4374 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -3894,6 +3894,16 @@ static void alc_fixup_no_shutup(struct hda_codec *codec,
>         }
>  }
>  
> +static void alc_fixup_disable_aamix(struct hda_codec *codec,
> +                               const struct hda_fixup *fix, int action)
> +{
> +       if (action == HDA_FIXUP_ACT_PRE_PROBE) {
> +               struct alc_spec *spec = codec->spec;
> +               /* Disable AA-loopback as it causes white noise */
> +               spec->gen.mixer_nid = 0;
> +       }
> +}
> +
>  static void alc_fixup_headset_mode_alc668(struct hda_codec *codec,
>                                 const struct hda_fixup *fix, int action)
>  {
> @@ -5313,6 +5323,7 @@ enum {
>         ALC662_FIXUP_BASS_1A,
>         ALC662_FIXUP_BASS_CHMAP,
>         ALC668_FIXUP_AUTO_MUTE,
> +       ALC668_FIXUP_DELL_DISABLE_AAMIX,
>  };
>  
>  static const struct hda_fixup alc662_fixups[] = {
> @@ -5479,6 +5490,12 @@ static const struct hda_fixup alc662_fixups[] = {
>                 .type = HDA_FIXUP_FUNC,
>                 .v.func = alc_fixup_inv_dmic_0x12,
>         },
> +       [ALC668_FIXUP_DELL_DISABLE_AAMIX] = {
> +               .type = HDA_FIXUP_FUNC,
> +               .v.func = alc_fixup_disable_aamix,
> +               .chained = true,
> +               .chain_id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE
> +       },
>         [ALC668_FIXUP_AUTO_MUTE] = {
>                 .type = HDA_FIXUP_FUNC,
>                 .v.func = alc_fixup_auto_mute_via_amp,
> @@ -5539,7 +5556,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
>         SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
>         SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
>         SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
> -       SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
> +       SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_DISABLE_AAMIX),
>         SND_PCI_QUIRK(0x1028, 0x0623, "Dell", ALC668_FIXUP_AUTO_MUTE),
>         SND_PCI_QUIRK(0x1028, 0x0624, "Dell", ALC668_FIXUP_AUTO_MUTE),
>         SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
> -- 
> 2.0.0.rc2
> 


More information about the Alsa-devel mailing list