| From 157f0b7f6c0cc0bc88647390006e959e267a0143 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Thu, 10 Dec 2015 23:30:43 +0100 |
| Subject: ALSA: hda - Apply click noise workaround for Thinkpads generically |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 157f0b7f6c0cc0bc88647390006e959e267a0143 upstream. |
| |
| It seems that a workaround for Thinkpad T440s crackling noise can be |
| applied generically to all Thinkpad models: namely, disabling the |
| default alc269 shutup callback. This patch moves it to the existing |
| alc_fixup_tpt440_dock() while also replacing the rest code with |
| another existing alc_fixup_disable_aamix(). It resulted in a good |
| code reduction. |
| |
| Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=958439 |
| Reported-and-tested-by: Benjamin Poirier <bpoirier@suse.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_realtek.c | 15 ++------------- |
| 1 file changed, 2 insertions(+), 13 deletions(-) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -4208,24 +4208,13 @@ static void alc_fixup_tpt440_dock(struct |
| struct alc_spec *spec = codec->spec; |
| |
| if (action == HDA_FIXUP_ACT_PRE_PROBE) { |
| + spec->shutup = alc_no_shutup; /* reduce click noise */ |
| spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; |
| codec->power_save_node = 0; /* avoid click noises */ |
| snd_hda_apply_pincfgs(codec, pincfgs); |
| } |
| } |
| |
| -/* additional fixup for Thinkpad T440s noise problem */ |
| -static void alc_fixup_tpt440(struct hda_codec *codec, |
| - const struct hda_fixup *fix, int action) |
| -{ |
| - struct alc_spec *spec = codec->spec; |
| - |
| - if (action == HDA_FIXUP_ACT_PRE_PROBE) { |
| - spec->shutup = alc_no_shutup; /* reduce click noise */ |
| - spec->gen.mixer_nid = 0; /* reduce background noise */ |
| - } |
| -} |
| - |
| static void alc_shutup_dell_xps13(struct hda_codec *codec) |
| { |
| struct alc_spec *spec = codec->spec; |
| @@ -5076,7 +5065,7 @@ static const struct hda_fixup alc269_fix |
| }, |
| [ALC292_FIXUP_TPT440] = { |
| .type = HDA_FIXUP_FUNC, |
| - .v.func = alc_fixup_tpt440, |
| + .v.func = alc_fixup_disable_aamix, |
| .chained = true, |
| .chain_id = ALC292_FIXUP_TPT440_DOCK, |
| }, |