Input: gpio_keys: report a wakeup_event for a button press on a wake_up button.
authorNeilBrown <neilb@suse.de>
Fri, 29 Jun 2012 10:18:30 +0000 (20:18 +1000)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 2 Mar 2013 20:11:55 +0000 (22:11 +0200)
commitb62b693f788dffed0766e7b61632d45e1b592478
tree97d41922d9b310485415dbcaf37ff3a1ed9cec13
parentfe401e52eee7afecc52198a6851fee3cd775cbd8
Input: gpio_keys: report a wakeup_event for a button press on a wake_up button.

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 handled
(gpio_keys_irq_isr), and simple pm_wakeup_event() with no delay is
sufficient as suspend will synchronise with all interrupt delivery.

When the user-space visible event is create 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>
Conflicts:

drivers/input/keyboard/gpio_keys.c
drivers/input/keyboard/gpio_keys.c