• Heiko Stübner's avatar
    Input: zforce - fix possible driver hang during suspend · 499e6127
    Heiko Stübner authored
    handle_level_irq masks the interrupt before handling it, and only
    unmasks it after the handler is finished. So when a touch event
    happens after threads are suspended, but before the system is fully asleep
    the irq handler tries to wakeup the thread which will only happen on the
    next resume, resulting in the wakeup event never being sent and the driver
    not being able to wake the system from sleep due to the masked irq.
    
    Therefore move the wakeup_event to a small non-threaded handler.
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    499e6127
zforce_ts.c 20.6 KB