linux/sound/pci
Hui Wang 476c02e0b4 ALSA: hda/realtek - a fake key event is triggered by running shutup
On the Lenovo X1C7 machines, after we plug the headset, the rt_resume()
and rt_suspend() of the codec driver will be called periodically, the
driver can't stay in the rt_suspend state even users doen't use the
sound card.

Through debugging, I found  when running rt_suspend(), it will call
alc225_shutup(), in this function, it will change 3k pull down control
by alc_update_coef_idx(codec, 0x4a, 0, 3 << 10), this will trigger a
fake key event and that event will resume the codec, when codec
suspend agin, it will trigger the fake key event one more time, this
process will repeat.

If disable the key event before changing the pull down control, it
will not trigger fake key event. It also needs to restore the pull
down control and re-enable the key event, otherwise the system can't
get key event when codec is in rt_suspend state.

Also move some functions ahead of alc225_shutup(), this can save the
function declaration.

Fixes: 76f7dec08f (ALSA: hda/realtek - Add Headset Button supported for ThinkPad X1)
Cc: Kailang Yang <kailang@realtek.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Link: https://lore.kernel.org/r/20200329082018.20486-1-hui.wang@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-03-29 10:41:22 +02:00
..
ac97 ALSA: ac97: More constifications 2020-01-05 16:14:34 +01:00
ali5451 ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
asihpi ALSA: asihpi: More constifications 2020-01-05 16:14:53 +01:00
au88x0 ALSA: au88x0: More constifications 2020-01-05 16:14:38 +01:00
aw2 sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
ca0106 ALSA: ca0106: More constifications 2020-01-05 16:14:52 +01:00
cs46xx sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
cs5535audio ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
ctxfi ALSA: ctxfi: More constifications 2020-01-05 16:14:52 +01:00
echoaudio sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
emu10k1 ALSA: emu10k1: Fix annotation and cast for the recent uapi header change 2020-02-02 10:08:24 +01:00
hda ALSA: hda/realtek - a fake key event is triggered by running shutup 2020-03-29 10:41:22 +02:00
ice1712 ALSA: ice1712: More constifications 2020-01-05 16:14:41 +01:00
korg1212 ALSA: korg1212: More constifications 2020-01-05 16:14:50 +01:00
lola ALSA: pci: Constify snd_device_ops definitions 2020-01-03 09:23:56 +01:00
lx6464es ALSA: lx6464es: More constifications 2020-01-05 16:15:07 +01:00
mixart ALSA: mixart: More constifications 2020-01-05 16:14:48 +01:00
nm256 sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
oxygen ALSA: oxygen: Support PCM sync_stop 2019-12-11 07:25:50 +01:00
pcxhr ALSA: pcxhr: More constifications 2020-01-05 16:14:47 +01:00
riptide ALSA: riptide: More constifications 2020-01-05 16:14:40 +01:00
rme9652 sound fixes for 5.6-rc1 2020-02-06 14:15:01 +00:00
trident ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
vx222 ALSA: vx: More constifications 2020-01-05 16:14:30 +01:00
ymfpci sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
ad1889.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
ad1889.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ak4531_codec.c ALSA: ak4531: More constification 2020-01-05 16:15:09 +01:00
als300.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
als4000.c ALSA: pci: Drop superfluous ioctl PCM ops 2019-12-11 07:25:31 +01:00
atiixp_modem.c ALSA: atiixp: More constifications 2020-01-05 16:14:54 +01:00
atiixp.c ALSA: atiixp: More constifications 2020-01-05 16:14:54 +01:00
azt3328.c ALSA: azt3328: More constification 2020-01-05 16:15:09 +01:00
azt3328.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bt87x.c ALSA: bt87x: Constify snd_bt87x_boards 2020-01-03 09:24:42 +01:00
cmipci.c ALSA: cmipci: More constifications 2020-01-05 16:14:55 +01:00
cs4281.c ALSA: cs4281: More constification 2020-01-05 16:15:10 +01:00
cs5530.c ALSA: pci: Constify snd_device_ops definitions 2020-01-03 09:23:56 +01:00
ens1370.c ALSA: ens137x: More constification 2020-01-05 16:15:11 +01:00
ens1371.c
es1938.c ALSA: es1938: More constifications 2020-01-05 16:14:54 +01:00
es1968.c ALSA: es1968: More constifications 2020-01-05 16:14:55 +01:00
fm801.c ALSA: fm801: More constification 2020-01-05 16:15:12 +01:00
intel8x0.c ALSA: intel8x0: More constifications 2020-01-05 16:14:31 +01:00
intel8x0m.c ALSA: intel8x0: More constifications 2020-01-05 16:14:31 +01:00
Kconfig sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
maestro3.c ALSA: pci: Constify snd_pci_quirk tables 2020-01-03 09:24:45 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rme32.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
rme96.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
sis7019.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
sis7019.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274 2019-06-05 17:30:30 +02:00
sonicvibes.c ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
via82xx_modem.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
via82xx.c ALSA: via82xx: More constification 2020-01-05 16:15:12 +01:00