Furquan Shaikh has uploaded this change for review.

View Change

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>
---
M payloads/libpayload/drivers/i8042/keyboard.c
1 file changed, 3 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/90/27290/1
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c
index d5606a3..062aec2 100644
--- a/payloads/libpayload/drivers/i8042/keyboard.c
+++ b/payloads/libpayload/drivers/i8042/keyboard.c
@@ -338,6 +338,9 @@
while (keyboard_havechar())
keyboard_getchar();

+ /* Disable scanning */
+ keyboard_cmd(I8042_KBCMD_DEFAULT_DIS);
+
/* Send keyboard disconnect command */
i8042_cmd(I8042_CMD_DIS_KB);


To view, visit change 27290. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1ffb8904d545284454c1825ee2e7c0087fc13762
Gerrit-Change-Number: 27290
Gerrit-PatchSet: 1
Gerrit-Owner: Furquan Shaikh <furquan@google.com>