linux/drivers/input/keyboard
Mark Brown 48c98b1bb8 Input: samsung-keypad - implement runtime power management support
When runtime power management is enabled put the Samsung keypad driver
into suspend mode with wakeups disabled whenever the device is open but
a key is not actually been pressed. As well as saving a trivial amount of
power this will support the use of SoC wide idle modes which put the entire
device into a retention mode and use explicit wakeup sources to exit.

Since not all of the interrupt controllers used with the driver support
set_irq_wake() (though they all do the right thing) and there's a nasty
WARN() when we disable wake after failing to enable it keep track of the
current wake status from runtime PM and only disable wake if we managed
to enable it; I'm not entirely sure why this doesn't affect the existing
uses of the API in the driver.

System suspend is unaffected as the driver core will runtime resume any
suspended devices prior to system suspend.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Conflicts:

	drivers/input/keyboard/samsung-keypad.c
2011-12-30 00:39:19 -08:00
..
Kconfig Input: samsung-keypad - enable compiling on other platforms 2011-11-15 09:46:14 -08:00
Makefile Input: tca8418_keypad - initial driver release 2011-10-29 12:32:24 -07:00
adp5520-keys.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
adp5588-keys.c Merge branch 'next' into for-linus 2011-10-26 21:46:20 -07:00
adp5589-keys.c Input: adp5589-keys - add support for the ADP5585 derivatives 2011-10-18 21:26:55 -07:00
amikbd.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
atakbd.c input/atari: Fix atarimouse init 2011-05-19 18:19:11 +02:00
atkbd.c Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
bf54x-keys.c Input: keyboard - staticise non-exported symbols 2011-12-12 00:03:00 -08:00
davinci_keyscan.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
ep93xx_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
gpio_keys.c Input: gpio_keys - use of_property_read_u32() 2011-09-20 22:46:32 -07:00
gpio_keys_polled.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
hil_kbd.c Input: hil_kbd - add missing MODULE_DEVICE_TABLE() 2010-10-13 07:49:05 -07:00
hilkbd.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
hpps2atkbd.h
imx_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
jornada680_kbd.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
jornada720_kbd.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
lkkbd.c Input: lkkbd - change formatting style to match the rest of the kernel 2009-10-13 23:58:20 -07:00
lm8323.c Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
locomokbd.c [ARM] locomo: avoid unnecessary cascaded keyboard IRQ 2010-03-02 07:40:49 +08:00
maple_keyb.c sh: maple: Support block reads and writes. 2009-02-27 16:07:32 +09:00
matrix_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
max7359_keypad.c Input: max7359 - convert to dev_pm_ops 2011-02-21 01:02:30 -08:00
mcs_touchkey.c Input: mcs_touchkey - add shutdown handler 2011-02-23 21:43:38 -08:00
mpr121_touchkey.c Input: mpr121 - improve sensibility of touch key 2011-06-29 01:32:49 -07:00
newtonkbd.c get rid of input BIT* duplicate defines 2007-10-19 11:53:42 -07:00
nomadik-ske-keypad.c Input: keyboard - staticise non-exported symbols 2011-12-12 00:03:00 -08:00
omap-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
omap4-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
opencores-kbd.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
pmic8xxx-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
pxa27x_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
pxa930_rotary.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
qt1070.c Input: qt1070 - remove obsolete cleanup for clientdata 2011-06-21 04:31:53 -07:00
qt2160.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
samsung-keypad.c Input: samsung-keypad - implement runtime power management support 2011-12-30 00:39:19 -08:00
sh_keysc.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
spear-keyboard.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
stmpe-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
stowaway.c get rid of input BIT* duplicate defines 2007-10-19 11:53:42 -07:00
sunkbd.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
tc3589x-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
tca6416-keypad.c Input: tca6416-keypad - suspend/resume wakeup support 2011-03-15 23:18:28 -07:00
tca8418_keypad.c Input: tca8418_keypad - initial driver release 2011-10-29 12:32:24 -07:00
tegra-kbc.c Input: tegra-kbc - report wakeup key for some platforms 2011-12-30 00:27:00 -08:00
tnetv107x-keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
twl4030_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
w90p910_keypad.c Input: keyboard - use macro module_platform_driver() 2011-11-30 23:41:41 -08:00
xtkbd.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00