Hi, The main reason for this patch series is to deal with the case when EC/keyboard controller has already latched a scancode in the output buffer at the same time the host (kernel) is sending a PS/2 command to the controller/device. The device should stop scanning (keyboard) or sending coordinate data (mouse), and instead send acknowledge (0xfa) and then potentially command response, but if the output buffer already contains scancode byte it can not be substituted with an ACK byte. The typical scenario for this is user activating a CapsLock function, with host sending command to toggle CapsLock LED. If at the same time the keyboard transmitting break code for the key the kernel may mistake it for garbage command response and get confused. To work around this scenario, instead of simply dropping the non-ACK/NAK byte we will pass it on to atkbd/psmouse for normal processing. In addition to the above there a couple more assorted cleanups and fixes. Thanks. Dmitry Torokhov (7): Input: libps2 - attach ps2dev instances as serio port's drvdata Input: libps2 - remove special handling of ACK for command byte Input: libps2 - rework handling of command response Input: libps2 - fix NAK handling Input: libps2 - fix aborting PS/2 commands Input: libps2 - introduce common interrupt handler Input: libps2 - do not discard non-ack bytes when controlling LEDs drivers/input/keyboard/atkbd.c | 94 ++++----- drivers/input/mouse/psmouse-base.c | 86 +++++---- drivers/input/mouse/psmouse.h | 2 + drivers/input/mouse/synaptics.c | 10 +- drivers/input/mouse/trackpoint.c | 2 +- drivers/input/serio/libps2.c | 293 +++++++++++++++++++++-------- include/linux/libps2.h | 62 +++--- 7 files changed, 350 insertions(+), 199 deletions(-) -- Dmitry