From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH] ALSA: hda - Disable AA-loopback on ALC668 Date: Wed, 21 May 2014 11:10:49 +0200 Message-ID: References: <1784940.JdFq8Pv96a@xps13> <1912473.njNymtsN1l@xps13> <7006803.45xCtKetRW@xps13> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id A6B382625D7 for ; Wed, 21 May 2014 11:10:49 +0200 (CEST) In-Reply-To: <7006803.45xCtKetRW@xps13> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Gabriele Mazzotta Cc: alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org At Tue, 20 May 2014 18:58:26 +0200, Gabriele Mazzotta wrote: > > On Tuesday 20 May 2014 18:06:53, Takashi Iwai wrote: > > At Tue, 20 May 2014 17:59:30 +0200, > > Gabriele Mazzotta wrote: > > > > > > On Thursday 15 May 2014 21:56:23, Gabriele Mazzotta > > > wrote: > > > > On Wednesday 14 May 2014 16:31:13, Gabriele Mazzotta > > > 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 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 >