summaryrefslogtreecommitdiff
path: root/drivers/hid/hid-gfrm.c
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>2017-06-15 16:32:04 +0300
committerJiri Kosina <jkosina@suse.cz>2017-06-23 11:16:16 +0300
commit4f4001bc76fd1a138a501fbd3d68cce72cbf96ce (patch)
treea7a503fffbf7a8a60d5fe243133b52a3b2ddea69 /drivers/hid/hid-gfrm.c
parentfd91189654a36f9566fedfd8ce6f4c5959c099bc (diff)
downloadlinux-4f4001bc76fd1a138a501fbd3d68cce72cbf96ce.tar.xz
HID: multitouch: fix rare Win 8 cases when the touch up event gets missing
Instead of blindly trusting the hardware to send us release, we should consider some events can get lost and release them when we judge time has come. The Windows 8 spec allows to be confident in the fact that the device will continuously report events when a finger touches the surface. This has been tested on the HID recording database I have, and all of those devices behave properly. Also, Arek tested it on his Lenovo Yoga 910, which exports such bug in some situations, when the movements are rather slow. We use an atomic bit here to guard against concurrent accesses to the mt slots because both mt_process_mt_event() and mt_expired_timeout() are called in interrupt context. Signed-off-by: Arek Burdach <arek.burdach@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Tested-by: Arek Burdach <arek.burdach@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-gfrm.c')
0 files changed, 0 insertions, 0 deletions