OSDN Git Service

Input: zforce - fix possible driver hang during suspend
authorHeiko Stübner <heiko@sntech.de>
Sat, 14 Dec 2013 09:41:55 +0000 (01:41 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 15 Dec 2013 10:53:13 +0000 (02:53 -0800)
commit499e61279d0f8dc6ecf46b75479118589df58b56
tree2bef28475bf760c4b94779cf25ccc5ceda9dbafb
parent241ecf1ce528804d5ffc8fb386ff2a01b1f937c4
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>
drivers/input/touchscreen/zforce_ts.c