• NeilBrown's avatar
    Input: gpio_keys - report a wakeup_event for a button press · 2fba26c6
    NeilBrown authored
    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: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    2fba26c6
gpio_keys.c 20.9 KB