payloads/libpayload/drivers/i8042: Disable scanning on disconnect

This change ensures that keyboard scanning is disabled and keyboard is
set to default state while disconnecting the keyboard. This is
required to ensure that the controller doesn't keep scanning and
buffering keystrokes which could lead to OS drivers reading stale
data.

BUG=b:110024487
TEST=Verified that kernel driver is able to probe correctly even if
multiple keys are pressed during handoff from payload to OS.

Change-Id: I1ffb8904d545284454c1825ee2e7c0087fc13762
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/27290
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Furquan Shaikh 2018-06-29 09:29:43 -07:00 committed by Patrick Georgi
parent 1299dc107d
commit 6756c16e82
1 changed files with 3 additions and 0 deletions

View File

@ -338,6 +338,9 @@ void keyboard_disconnect(void)
while (keyboard_havechar()) while (keyboard_havechar())
keyboard_getchar(); keyboard_getchar();
/* Disable scanning */
keyboard_cmd(I8042_KBCMD_DEFAULT_DIS);
/* Send keyboard disconnect command */ /* Send keyboard disconnect command */
i8042_cmd(I8042_CMD_DIS_KB); i8042_cmd(I8042_CMD_DIS_KB);