ALSA: hda - Apply click noise workaround for Thinkpads generically
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> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
c04017ea81
commit
157f0b7f6c
1 changed files with 2 additions and 13 deletions
|
@ -4198,24 +4198,13 @@ static void alc_fixup_tpt440_dock(struct hda_codec *codec,
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
|
|
||||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||||
|
spec->shutup = alc_no_shutup; /* reduce click noise */
|
||||||
spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
|
spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
|
||||||
codec->power_save_node = 0; /* avoid click noises */
|
codec->power_save_node = 0; /* avoid click noises */
|
||||||
snd_hda_apply_pincfgs(codec, pincfgs);
|
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)
|
static void alc_shutup_dell_xps13(struct hda_codec *codec)
|
||||||
{
|
{
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
|
@ -5067,7 +5056,7 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||||
},
|
},
|
||||||
[ALC292_FIXUP_TPT440] = {
|
[ALC292_FIXUP_TPT440] = {
|
||||||
.type = HDA_FIXUP_FUNC,
|
.type = HDA_FIXUP_FUNC,
|
||||||
.v.func = alc_fixup_tpt440,
|
.v.func = alc_fixup_disable_aamix,
|
||||||
.chained = true,
|
.chained = true,
|
||||||
.chain_id = ALC292_FIXUP_TPT440_DOCK,
|
.chain_id = ALC292_FIXUP_TPT440_DOCK,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue