Input: samsung-keypad - implement runtime power management support
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 29 Dec 2011 17:58:16 +0000 (09:58 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 30 Dec 2011 08:39:19 +0000 (00:39 -0800)
commit48c98b1bb85a09adf4aa27316682d573e1f37ebf
treeca898d31965df3f7c94d7100a7ce81e58f93fe66
parentfd0fc21350838d3073647be173242db0c58744c8
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
drivers/input/keyboard/samsung-keypad.c