Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/37664 )
Change subject: libpayload/drivers/i8042: Add error handling ......................................................................
libpayload/drivers/i8042: Add error handling
Add error handling on I8042_CMD_WR_CMD_BYTE failure.
BUG=b:145130110 TEST=Draillion keyboard is usable on every boot.
Signed-off-by: Eric Lai ericr_lai@compal.corp-partner.google.com Change-Id: I56c472ae7e399d4862c6e41b70f53a21d718157d Reviewed-on: https://review.coreboot.org/c/coreboot/+/37664 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Duncan Laurie dlaurie@chromium.org --- M payloads/libpayload/drivers/i8042/keyboard.c 1 file changed, 6 insertions(+), 2 deletions(-)
Approvals: build bot (Jenkins): Verified Duncan Laurie: Looks good to me, approved
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c index 4b4a569..79455cf 100644 --- a/payloads/libpayload/drivers/i8042/keyboard.c +++ b/payloads/libpayload/drivers/i8042/keyboard.c @@ -318,10 +318,14 @@ if (!i8042_cmd(I8042_CMD_RD_CMD_BYTE)) { int cmd = i8042_read_data_ps2(); cmd |= I8042_CMD_BYTE_XLATE; - if (!i8042_cmd(I8042_CMD_WR_CMD_BYTE)) + if (!i8042_cmd(I8042_CMD_WR_CMD_BYTE)) { i8042_write_data(cmd); + } else { + printf("ERROR: i8042_cmd WR_CMD failed!\n"); + return 0; + } } else { - printf("ERROR: Keyboard i8042_cmd failed!\n"); + printf("ERROR: i8042_cmd RD_CMD failed!\n"); return 0; } return 1;