linux/drivers/input/keyboard
Anson Huang 41420ac584 Input: imx_keypad - make sure keyboard can always wake up system
[ Upstream commit ce9a53eb3d ]

There are several scenarios that keyboard can NOT wake up system
from suspend, e.g., if a keyboard is depressed between system
device suspend phase and device noirq suspend phase, the keyboard
ISR will be called and both keyboard depress and release interrupts
will be disabled, then keyboard will no longer be able to wake up
system. Another scenario would be, if a keyboard is kept depressed,
and then system goes into suspend, the expected behavior would be
when keyboard is released, system will be waked up, but current
implementation can NOT achieve that, because both depress and release
interrupts are disabled in ISR, and the event check is still in
progress.

To fix these issues, need to make sure keyboard's depress or release
interrupt is enabled after noirq device suspend phase, this patch
moves the suspend/resume callback to noirq suspend/resume phase, and
enable the corresponding interrupt according to current keyboard status.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-07-14 08:11:09 +02:00
..
adc-keys.c Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:49 -08:00
adp5520-keys.c Input: keyboard - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:25 -08:00
adp5588-keys.c gpio: adp5588: move header file out of I2C realm 2017-05-29 13:36:45 +02:00
adp5589-keys.c Input: mark expected switch fall-throughs 2018-08-08 11:23:27 -07:00
amikbd.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
atakbd.c Input: atakbd - fix Atari CapsLock behaviour 2018-09-18 15:28:07 -07:00
atkbd.c Input: iatkbd - constify serio_device_id 2017-08-18 17:14:19 -07:00
bcm-keypad.c Input: matrix-keypad - switch to using generic device properties 2017-01-31 11:31:48 -08:00
cap11xx.c Input: cap11xx - switch to using set_brightness_blocking() 2019-03-23 20:09:44 +01:00
clps711x-keypad.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
cros_ec_keyb.c Input: cros_ec_keyb - fix button/switch capability reports 2018-12-08 12:59:09 +01:00
davinci_keyscan.c Input: keyboard - use local variables consistently 2017-01-21 23:51:54 -08:00
dlink-dir685-touchkeys.c Input: add D-Link DIR-685 touchkeys driver 2017-06-05 15:35:32 -07:00
ep93xx_keypad.c
goldfish_events.c Input: goldfish_events - fix checkpatch warnings 2018-06-04 13:36:26 -07:00
gpio_keys_polled.c This is the bulk of GPIO changes for the v4.11 cycle 2017-02-23 08:46:04 -08:00
gpio_keys.c Input: gpio-keys - switch to bitmap_zalloc() 2018-08-01 17:59:21 -07:00
hil_kbd.c Input: hil_kbd - constify serio_device_id 2017-08-18 17:14:20 -07:00
hilkbd.c Input: hilkbd - Add casts to HP9000/300 I/O accessors 2018-07-29 10:48:18 +02:00
hpps2atkbd.h
imx_keypad.c Input: imx_keypad - make sure keyboard can always wake up system 2019-07-14 08:11:09 +02:00
ipaq-micro-keys.c Input: driver for microcontroller keys on the iPaq h3xxx 2015-03-06 11:25:31 -08:00
jornada680_kbd.c Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:49 -08:00
jornada720_kbd.c Input: jornada720_kbd - remove unneeded mach/hardware.h include 2016-09-10 10:47:47 -07:00
Kconfig Input: keyboard: Fix ChromeOS EC keyboard help message. 2018-07-03 12:40:44 -07:00
lkkbd.c Input: lkkbd - constify serio_device_id 2017-08-18 17:14:21 -07:00
lm8323.c Input: lm8323 - move header file out of I2C realm 2017-05-22 17:23:46 -07:00
lm8333.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
locomokbd.c Input: keyboard - convert timers to use timer_setup() 2017-10-24 10:04:44 -07:00
lpc32xx-keys.c Input: matrix-keypad - switch to using generic device properties 2017-01-31 11:31:48 -08:00
Makefile input: Add MediaTek PMIC keys support 2018-04-16 15:16:11 +01:00
maple_keyb.c Input: keyboard - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:25 -08:00
matrix_keypad.c Input: matrix_keypad - use flush_delayed_work() 2019-03-23 20:09:44 +01:00
max7359_keypad.c Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:49 -08:00
mcs_touchkey.c Input: mcs - move header file out of I2C realm 2017-05-22 17:26:57 -07:00
mpr121_touchkey.c Input: keyboard - use local variables consistently 2017-01-21 23:51:54 -08:00
mtk-pmic-keys.c input: Add MediaTek PMIC keys support 2018-04-16 15:16:11 +01:00
newtonkbd.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
nomadik-ske-keypad.c Input: nomadik-ske-keypad - fix a trivial typo 2015-10-22 23:31:22 -07:00
nspire-keypad.c Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:49 -08:00
omap-keypad.c Input: keyboard - convert timers to use timer_setup() 2017-10-24 10:04:44 -07:00
omap4-keypad.c Input: omap-keypad - fix idle configuration to not block SoC idle states 2019-01-13 09:50:58 +01:00
opencores-kbd.c Input: keyboard - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:25 -08:00
pmic8xxx-keypad.c Input: pmic8xxx-keypad - remove unneeded MODULE_VERSION() usage 2018-01-16 16:48:21 -08:00
pxa27x_keypad.c Input: pxa27x_keypad - handle return value of clk_prepare_enable 2017-08-31 11:57:35 -07:00
pxa930_rotary.c
qt1070.c Input: qt1070 - add OF device ID table 2017-03-23 14:46:33 -07:00
qt2160.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
samsung-keypad.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
sh_keysc.c
snvs_pwrkey.c Input: snvs_pwrkey - initialize necessary driver data before enabling IRQ 2019-05-08 07:21:53 +02:00
spear-keyboard.c Input: keyboard - drop unnecessary calls to device_init_wakeup 2017-01-21 23:53:19 -08:00
st-keyscan.c Input: st-keyscan - fix potential zalloc NULL dereference 2019-03-23 20:09:47 +01:00
stmpe-keypad.c Input: stmpe-keypad - remove VLA usage 2018-03-10 10:18:33 -08:00
stowaway.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
sun4i-lradc-keys.c Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:49 -08:00
sunkbd.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
tc3589x-keypad.c Input: tc3589x-keypad - remove stray ')' 2016-05-25 17:37:15 -07:00
tca6416-keypad.c
tca8418_keypad.c Input: tca8418 - enable interrupt after it has been requested 2017-10-19 16:50:20 -07:00
tegra-kbc.c Input: keyboard - convert timers to use timer_setup() 2017-10-24 10:04:44 -07:00
tm2-touchkey.c Input: tm2-touchkey - use LEN_ON as boolean value instead of LED_FULL 2017-06-01 22:08:05 -07:00
twl4030_keypad.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
w90p910_keypad.c
xtkbd.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00