Input: gpio_keys - report a wakeup_event for a button press
authorNeilBrown <neilb@suse.de>
Mon, 30 Jul 2012 05:18:47 +0000 (22:18 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 22 Aug 2012 05:29:48 +0000 (22:29 -0700)
commit2fba26c6595e4c1c64a74dad30f71c09708ff59a
tree978e2ec8f5154128e11778f93ebd9b914cf04630
parent219edc71784ff8a3537ffbe64baded61ce4048b9
Input: gpio_keys - report a wakeup_event for a button press

In order to avoid races with suspend, a wakeup event must register as
such by calling pm_wakeup_event() or pm_stay_awake().  This will ensure
that the current suspend cycle aborts.

When the user-space visible event is created in the interrupt handler
(gpio_keys_irq_isr), a simple pm_wakeup_event() with no delay is
sufficient as suspend will synchronise with all interrupt delivery.

When the user-space visible event is created later
(gpio_keys_gpio_isr), we need to bracket the event with
pm_stay_awake() and pm_relax().

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/gpio_keys.c