diff options
author | Gabriele Mazzotta <gabriele.mzt@gmail.com> | 2014-05-20 12:58:26 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-05-21 05:00:06 -0400 |
commit | 5e6db6699b7651f02f4b7cc6a86f5b3d9359d636 (patch) | |
tree | 32f1239059e1f15e40e012b340a97b54af07e659 /sound/pci/hda/patch_realtek.c | |
parent | f73387cb6b1f1534e56669e6aecefae1be867f59 (diff) |
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@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 40f9b5d712eb..680283b23474 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -3970,6 +3970,16 @@ static void alc_fixup_no_shutup(struct hda_codec *codec, | |||
3970 | } | 3970 | } |
3971 | } | 3971 | } |
3972 | 3972 | ||
3973 | static void alc_fixup_disable_aamix(struct hda_codec *codec, | ||
3974 | const struct hda_fixup *fix, int action) | ||
3975 | { | ||
3976 | if (action == HDA_FIXUP_ACT_PRE_PROBE) { | ||
3977 | struct alc_spec *spec = codec->spec; | ||
3978 | /* Disable AA-loopback as it causes white noise */ | ||
3979 | spec->gen.mixer_nid = 0; | ||
3980 | } | ||
3981 | } | ||
3982 | |||
3973 | static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, | 3983 | static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, |
3974 | const struct hda_fixup *fix, int action) | 3984 | const struct hda_fixup *fix, int action) |
3975 | { | 3985 | { |
@@ -5414,6 +5424,7 @@ enum { | |||
5414 | ALC662_FIXUP_BASS_1A, | 5424 | ALC662_FIXUP_BASS_1A, |
5415 | ALC662_FIXUP_BASS_CHMAP, | 5425 | ALC662_FIXUP_BASS_CHMAP, |
5416 | ALC668_FIXUP_AUTO_MUTE, | 5426 | ALC668_FIXUP_AUTO_MUTE, |
5427 | ALC668_FIXUP_DELL_DISABLE_AAMIX, | ||
5417 | }; | 5428 | }; |
5418 | 5429 | ||
5419 | static const struct hda_fixup alc662_fixups[] = { | 5430 | static const struct hda_fixup alc662_fixups[] = { |
@@ -5580,6 +5591,12 @@ static const struct hda_fixup alc662_fixups[] = { | |||
5580 | .type = HDA_FIXUP_FUNC, | 5591 | .type = HDA_FIXUP_FUNC, |
5581 | .v.func = alc_fixup_inv_dmic_0x12, | 5592 | .v.func = alc_fixup_inv_dmic_0x12, |
5582 | }, | 5593 | }, |
5594 | [ALC668_FIXUP_DELL_DISABLE_AAMIX] = { | ||
5595 | .type = HDA_FIXUP_FUNC, | ||
5596 | .v.func = alc_fixup_disable_aamix, | ||
5597 | .chained = true, | ||
5598 | .chain_id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE | ||
5599 | }, | ||
5583 | [ALC668_FIXUP_AUTO_MUTE] = { | 5600 | [ALC668_FIXUP_AUTO_MUTE] = { |
5584 | .type = HDA_FIXUP_FUNC, | 5601 | .type = HDA_FIXUP_FUNC, |
5585 | .v.func = alc_fixup_auto_mute_via_amp, | 5602 | .v.func = alc_fixup_auto_mute_via_amp, |
@@ -5640,7 +5657,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = { | |||
5640 | SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), | 5657 | SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), |
5641 | SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), | 5658 | SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), |
5642 | SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), | 5659 | SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), |
5643 | SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), | 5660 | SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_DISABLE_AAMIX), |
5644 | SND_PCI_QUIRK(0x1028, 0x0623, "Dell", ALC668_FIXUP_AUTO_MUTE), | 5661 | SND_PCI_QUIRK(0x1028, 0x0623, "Dell", ALC668_FIXUP_AUTO_MUTE), |
5645 | SND_PCI_QUIRK(0x1028, 0x0624, "Dell", ALC668_FIXUP_AUTO_MUTE), | 5662 | SND_PCI_QUIRK(0x1028, 0x0624, "Dell", ALC668_FIXUP_AUTO_MUTE), |
5646 | SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), | 5663 | SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), |