linux/drivers/input/keyboard
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
..
adp5520-keys.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
adp5588-keys.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
adp5589-keys.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
amikbd.c Input: revert some over-zealous conversions to module_platform_driver() 2012-01-10 23:12:46 -08:00
atakbd.c input/atari: Fix atarimouse init 2011-05-19 18:19:11 +02:00
atkbd.c Input: atkbd - fix multi-byte scancode handling on reconnect 2013-01-21 17:31:40 -08:00
bf54x-keys.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
davinci_keyscan.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
ep93xx_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
gpio_keys_polled.c Input: gpio_keys_polled - switch to using gpio_request_one() 2012-12-03 21:25:11 -08:00
gpio_keys.c Input: gpio_keys - switch to using gpio_request_one() 2012-12-03 21:25:06 -08:00
hil_kbd.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
hilkbd.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
hpps2atkbd.h
imx_keypad.c Input: imx_keypad - add device tree support 2013-01-03 12:41:31 -08:00
jornada680_kbd.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
jornada720_kbd.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
Kconfig Linux 3.7-rc4 2012-11-08 08:51:52 -08:00
lkkbd.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
lm8323.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
lm8333.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
locomokbd.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
lpc32xx-keys.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
Makefile Input: add support for key scan interface of the LPC32xx SoC 2012-07-17 23:16:16 -07:00
maple_keyb.c
matrix_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
max7359_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
mcs_touchkey.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
mpr121_touchkey.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
newtonkbd.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
nomadik-ske-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
omap4-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
omap-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
opencores-kbd.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
pmic8xxx-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
pxa27x_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
pxa930_rotary.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
qt1070.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
qt2160.c Input: qt2160 - add support for LEDs 2013-01-04 16:57:09 -08:00
samsung-keypad.c Input: samsung-keypad - switch to using managed resources 2012-11-27 22:38:37 -08:00
sh_keysc.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
spear-keyboard.c Input: spear-keyboard - add clk_{un}prepare() support 2012-11-27 22:38:32 -08:00
stmpe-keypad.c Input: stmpe-keypad - add support for Device Tree bindings 2012-11-24 00:21:49 -08:00
stowaway.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
sunkbd.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
tc3589x-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
tca6416-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
tca8418_keypad.c Input: tca8418-keypad - switch to using managed resources 2012-11-29 09:30:49 -08:00
tegra-kbc.c Input: tegra-kbc - remove default keymap 2013-01-17 00:28:02 -08:00
tnetv107x-keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
twl4030_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
w90p910_keypad.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
xtkbd.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00