aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-06-15 05:59:32 -0400
committerTakashi Iwai <tiwai@suse.de>2015-06-15 06:04:25 -0400
commit8b99aba70c5f581860736855e211cf981f438ad2 (patch)
tree98318701f655ad90d816debf35098907f8fa08b7 /sound/pci
parent6ab42ff44864d26e8e498b8ac655d24ee389d267 (diff)
ALSA: hda - Fix audio crackles on Dell Latitude E7x40
We still got a report that the audio crackles and noises occur with the recent 4.1 kernels on Dell machines. These machines seem to need similar workarounds that have been applied to the recent Dell XPS 13 models. Since the codec of these machines (Dell Latitute E7240 and E7440) is different from XPS 13's one, we need a new fixup entry. Also, it was confirmed that the previous workaround to disable the widget power-save (commit [219f47e4f964: ALSA: hda - Disable widget power-saving for ALC292 & co]) is no longer needed after this fix. So, this patch includes the partial revert of the commit, too. Reported-and-tested-by: Mihai Donțu <mihai.dontu@gmail.com> Tested-by: Jonathan McDowell <noodles@earth.li> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c17
1 files changed, 15 insertions, 2 deletions
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 {
4515 ALC288_FIXUP_DELL_HEADSET_MODE, 4515 ALC288_FIXUP_DELL_HEADSET_MODE,
4516 ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, 4516 ALC288_FIXUP_DELL1_MIC_NO_PRESENCE,
4517 ALC288_FIXUP_DELL_XPS_13_GPIO6, 4517 ALC288_FIXUP_DELL_XPS_13_GPIO6,
4518 ALC292_FIXUP_DELL_E7X,
4519 ALC292_FIXUP_DISABLE_AAMIX,
4518}; 4520};
4519 4521
4520static const struct hda_fixup alc269_fixups[] = { 4522static const struct hda_fixup alc269_fixups[] = {
@@ -5037,6 +5039,16 @@ static const struct hda_fixup alc269_fixups[] = {
5037 .chained = true, 5039 .chained = true,
5038 .chain_id = ALC288_FIXUP_DELL1_MIC_NO_PRESENCE 5040 .chain_id = ALC288_FIXUP_DELL1_MIC_NO_PRESENCE
5039 }, 5041 },
5042 [ALC292_FIXUP_DISABLE_AAMIX] = {
5043 .type = HDA_FIXUP_FUNC,
5044 .v.func = alc_fixup_disable_aamix,
5045 },
5046 [ALC292_FIXUP_DELL_E7X] = {
5047 .type = HDA_FIXUP_FUNC,
5048 .v.func = alc_fixup_dell_xps13,
5049 .chained = true,
5050 .chain_id = ALC292_FIXUP_DISABLE_AAMIX
5051 },
5040}; 5052};
5041 5053
5042static const struct snd_pci_quirk alc269_fixup_tbl[] = { 5054static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -5049,6 +5061,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
5049 SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572), 5061 SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572),
5050 SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS), 5062 SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS),
5051 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 5063 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
5064 SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X),
5065 SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X),
5052 SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), 5066 SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER),
5053 SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), 5067 SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
5054 SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), 5068 SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
@@ -5637,8 +5651,7 @@ static int patch_alc269(struct hda_codec *codec)
5637 5651
5638 spec = codec->spec; 5652 spec = codec->spec;
5639 spec->gen.shared_mic_vref_pin = 0x18; 5653 spec->gen.shared_mic_vref_pin = 0x18;
5640 if (codec->core.vendor_id != 0x10ec0292) 5654 codec->power_save_node = 1;
5641 codec->power_save_node = 1;
5642 5655
5643 snd_hda_pick_fixup(codec, alc269_fixup_models, 5656 snd_hda_pick_fixup(codec, alc269_fixup_models,
5644 alc269_fixup_tbl, alc269_fixups); 5657 alc269_fixup_tbl, alc269_fixups);