• Hans de Goede's avatar
    platform/x86: intel-vbtn: Rework wakeup handling in notify_handler() · 5862b4df
    Hans de Goede authored
    Rework the wakeup path inside notify_handler() to special case the
    buttons (KE_KEY) case instead of the switches case.
    
    In case of a button wake event we want to skip reporting this,
    mirroring how the drivers/acpi/button.c code skips the reporting
    in the wakeup case (suspended flag set) too.
    
    The reason to skip reporting in this case is that some Linux
    desktop-environments will immediately resuspend if we report an
    evdev event for the power-button press on wakeup.
    
    Before this commit the skipping of the button-press was done
    in a round-about way: In case of a wakeup the regular
    sparse_keymap_report_event() would always be skipped by
    an early return, and then to avoid not reporting switch changes
    on wakeup there was a special KE_SW path with a duplicate
    sparse_keymap_report_event() call.
    
    This commit refactors the wakeup handling to explicitly skip the
    reporting for button wake events, while using the regular
    reporting path for non button (switches) wakeup events.
    
    No intentional functional impact.
    
    Cc: Elia Devito <eliadevito@gmail.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210115161850.117614-1-hdegoede@redhat.com
    5862b4df
intel-vbtn.c 10.1 KB