summaryrefslogtreecommitdiffstats
path: root/drivers/input/joystick
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2012-12-31 12:53:35 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2013-01-21 17:31:40 -0800
commitbe2d7e4233a4fe439125b825470020cef83407d5 (patch)
treef7c8b61c3e66070d0b3a44cb5498effcb268b2f4 /drivers/input/joystick
parent4a31ba37b7ed39c9c7178da6e6df7bce63ffc56f (diff)
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>
Diffstat (limited to 'drivers/input/joystick')
0 files changed, 0 insertions, 0 deletions