From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755563AbbFLONV (ORCPT ); Fri, 12 Jun 2015 10:13:21 -0400 Received: from cantor2.suse.de ([195.135.220.15]:38773 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754640AbbFLONR (ORCPT ); Fri, 12 Jun 2015 10:13:17 -0400 Date: Fri, 12 Jun 2015 16:13:16 +0200 Message-ID: From: Takashi Iwai To: Mihai =?UTF-8?B?RG9uyJt1?= Cc: Jonathan McDowell , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: Audio crackles with 4.1-rc1 In-Reply-To: References: <20150430150131.GA10148@earth.li> <20150502150513.GF10148@earth.li> <20150519161911.GD28070@earth.li> <20150519215310.GF28070@earth.li> <20150610131755.0b906783@mdontu-l.dsd.bitdefender.biz> <20150610134135.327e2bdc@mdontu-l.dsd.bitdefender.biz> <20150610144551.4578ee99@mdontu-l.dsd.bitdefender.biz> <20150610192202.0e987fd0@mdontu-l.dsd.bitdefender.biz> <20150610194303.3b82609d@mdontu-l.dsd.bitdefender.biz> <20150611011236.53bcd1fd@mdontu-l> <20150612012318.6e3482ed@mdontu-l> <20150612124523.37fd0875@mdontu-l> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.5 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At Fri, 12 Jun 2015 12:09:55 +0200, Takashi Iwai wrote: > > At Fri, 12 Jun 2015 12:45:23 +0300, > Mihai Donțu wrote: > > > > On Fri, 12 Jun 2015 09:00:06 +0200 Takashi Iwai wrote: > > > At Fri, 12 Jun 2015 01:23:18 +0300, Mihai Donțu wrote: > > > > No, 4.0.5 and all previous kernels (>= 3.12) are OK. I have attached a > > > > small tarball with the two files produced by alsa-info.sh. > > > > > > Both are taken in different states (one is headphone plugged and > > > another unplugged?). At best, take the snapshot in the same situation > > > for comparison. > > > > > > In anyway, below is another shot in dark. The white noise is possibly > > > the ill side effect of analog loopback. But it's strange that this > > > didn't happen on 4.0.x. And, it combines another black magic that > > > worked for another Dell model. Let's see. > > > > > > > > > Takashi > > > > > > --- > > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > > > index 9d3e0fcb4326..cf46f6012ba4 100644 > > > --- a/sound/pci/hda/patch_realtek.c > > > +++ b/sound/pci/hda/patch_realtek.c > > > @@ -4522,6 +4522,8 @@ enum { > > > ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, > > > ALC288_FIXUP_DELL_XPS_13_GPIO6, > > > ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, > > > + ALC292_FIXUP_DELL_E74, > > > + ALC292_FIXUP_DISABLE_AAMIX, > > > }; > > > > > > static const struct hda_fixup alc269_fixups[] = { > > > @@ -5054,6 +5056,16 @@ static const struct hda_fixup alc269_fixups[] = { > > > .chained = true, > > > .chain_id = ALC269_FIXUP_HEADSET_MODE > > > }, > > > + [ALC292_FIXUP_DISABLE_AAMIX] = { > > > + .type = HDA_FIXUP_FUNC, > > > + .v.func = alc_fixup_disable_aamix, > > > + }, > > > + [ALC292_FIXUP_DELL_E74] = { > > > + .type = HDA_FIXUP_FUNC, > > > + .v.func = alc_fixup_dell_xps13, > > > + .chained = true, > > > + .chain_id = ALC292_FIXUP_DISABLE_AAMIX > > > + }, > > > }; > > > > > > static const struct snd_pci_quirk alc269_fixup_tbl[] = { > > > @@ -5066,6 +5078,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { > > > SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572), > > > SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS), > > > SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), > > > + SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E74), > > > SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), > > > SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), > > > SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), > > > > Nice shot! It appears to work. :-) No clicks, no static. > > Good to hear! > > > I had to apply it by hand over 4.1-rc7, because the first two arrays > > look different in both it and -master. Anyway, I will play with it some > > more today see if anything else is broken. > > While we are at it: could you try to enable codec->power_save_node in > patch_alc269() (while keeping the new patch)? > > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -5671,8 +5671,7 @@ static int patch_alc269(struct hda_codec *codec) > > spec = codec->spec; > spec->gen.shared_mic_vref_pin = 0x18; > - if (codec->core.vendor_id != 0x10ec0292) > - codec->power_save_node = 1; > + codec->power_save_node = 1; > > #ifdef CONFIG_PM > codec->patch_ops.suspend = alc269_suspend; For your convenience, below is the combined patch for 4.1. Jonathan, could you also try this patch and see whether you still get the noise? thanks, Takashi --- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0320cb523d9e..919051d92a0b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4515,6 +4515,8 @@ enum { ALC288_FIXUP_DELL_HEADSET_MODE, ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, ALC288_FIXUP_DELL_XPS_13_GPIO6, + ALC292_FIXUP_DELL_E7X, + ALC292_FIXUP_DISABLE_AAMIX, }; static const struct hda_fixup alc269_fixups[] = { @@ -5037,6 +5039,16 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC288_FIXUP_DELL1_MIC_NO_PRESENCE }, + [ALC292_FIXUP_DISABLE_AAMIX] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_disable_aamix, + }, + [ALC292_FIXUP_DELL_E7X] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_dell_xps13, + .chained = true, + .chain_id = ALC292_FIXUP_DISABLE_AAMIX + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -5049,6 +5061,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572), SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS), SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), + SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X), + SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X), SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), @@ -5637,8 +5651,7 @@ static int patch_alc269(struct hda_codec *codec) spec = codec->spec; spec->gen.shared_mic_vref_pin = 0x18; - if (codec->core.vendor_id != 0x10ec0292) - codec->power_save_node = 1; + codec->power_save_node = 1; snd_hda_pick_fixup(codec, alc269_fixup_models, alc269_fixup_tbl, alc269_fixups);