Home
last modified time | relevance | path

Searched hist:"499 e6127" (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/drivers/input/touchscreen/
H A Dzforce_ts.c499e6127 Sat Dec 14 03:41:55 CST 2013 Heiko Stübner <heiko@sntech.de> Input: zforce - fix possible driver hang during suspend

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: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
499e6127 Sat Dec 14 03:41:55 CST 2013 Heiko Stübner <heiko@sntech.de> Input: zforce - fix possible driver hang during suspend

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: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>