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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to