mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
ALSA: hda - Fix pincfg at resume on Lenovo T470 dock
We've added a quirk to enable the recent Lenovo dock support, where it
overwrites the pin configs of NID 0x17 and 19, not only updating the
pin config cache. It works right after the boot, but the problem is
that the pin configs are occasionally cleared when the machine goes to
PM. Meanwhile the quirk writes the pin configs only at the pre-probe,
so this won't be applied any longer.
For addressing that issue, this patch moves the code to overwrite the
pin configs into HDA_FIXUP_ACT_INIT section so that it's always
applied at both probe and resume time.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195161
Fixes: 61fcf8ece9
("ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform")
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
240a8af929
commit
71db96ddfa
@ -4997,13 +4997,14 @@ static void alc_fixup_tpt470_dock(struct hda_codec *codec,
|
|||||||
|
|
||||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||||
spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
|
spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
|
||||||
|
snd_hda_apply_pincfgs(codec, pincfgs);
|
||||||
|
} else if (action == HDA_FIXUP_ACT_INIT) {
|
||||||
/* Enable DOCK device */
|
/* Enable DOCK device */
|
||||||
snd_hda_codec_write(codec, 0x17, 0,
|
snd_hda_codec_write(codec, 0x17, 0,
|
||||||
AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
|
AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
|
||||||
/* Enable DOCK device */
|
/* Enable DOCK device */
|
||||||
snd_hda_codec_write(codec, 0x19, 0,
|
snd_hda_codec_write(codec, 0x19, 0,
|
||||||
AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
|
AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
|
||||||
snd_hda_apply_pincfgs(codec, pincfgs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user