linux/drivers/input
Shawn Nematbakhsh be2d7e4233 Input: atkbd - fix multi-byte scancode handling on reconnect
On resume from suspend there is a possibility for multi-byte scancodes
to be handled incorrectly. atkbd_reconnect disables the processing of
scancodes in software by calling atkbd_disable, but the keyboard may
still be active because no disconnect command was sent. Later, software
handling is re-enabled. If a multi-byte scancode sent from the keyboard
straddles the re-enable, only the latter byte(s) will be handled.

In practice, this leads to cases where multi-byte break codes (ex. "e0
4d" - break code for right-arrow) are misread as make codes ("4d" - make
code for numeric 6), leading to one or more unwanted, untyped characters
being interpreted.

The solution implemented here involves sending command f5 (reset
disable) to the keyboard prior to disabling software handling of codes.
Later, the command to re-enable the keyboard is sent only after we are
prepared to handle scancodes.

Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2013-01-21 17:31:40 -08:00
..
gameport Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
joystick Input: walkera0701 - fix crash on startup 2012-12-16 22:02:51 -08:00
keyboard Input: atkbd - fix multi-byte scancode handling on reconnect 2013-01-21 17:31:40 -08:00
misc Input: twl4030-vibra - Use system workqueue 2013-01-21 17:31:08 -08:00
mouse Input: add driver for Cypress APA I2C Trackpad 2013-01-17 00:28:10 -08:00
serio Input: HIL - do not call tasklet_disable right before tasklet_kill 2012-11-25 00:10:13 -08:00
tablet Input: wacom - use new input-mt routines 2013-01-06 01:11:02 -08:00
touchscreen Input: mms114 - switch to using managed resources 2013-01-17 00:28:05 -08:00
apm-power.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
evbug.c
evdev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
ff-core.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
ff-memless.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Merge branch 'for-linus' into next 2012-11-24 00:02:54 -08:00
input-polldev.c Merge commit 'v3.2-rc3' into next 2011-11-29 01:51:07 -08:00
input.c Input: introduce managed input devices (add devres support) 2012-11-08 09:10:05 -08:00
joydev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
Kconfig Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c Input: marix-keymap - automatically allocate memory for keymap 2012-11-14 08:35:07 -08:00
mousedev.c Input: mousedev - move /dev/input/mice to the correct minor 2012-11-18 23:15:16 -08:00
sparse-keymap.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00