[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