summaryrefslogtreecommitdiff
path: root/common/keyboard_8042.c
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2019-06-03 19:08:42 -0700
committerCommit Bot <commit-bot@chromium.org>2019-06-05 21:13:50 +0000
commit184701a33a0f77dfbe38d231d05741db1f8ddbc6 (patch)
treeb1dcb55ef110c1d2922c9d22b263f0629060330c /common/keyboard_8042.c
parente0f6c91881b2873a415d9debaf381dfada771629 (diff)
downloadchrome-ec-184701a33a0f77dfbe38d231d05741db1f8ddbc6.tar.gz
8042: Only send back ACK in response to reset command(0xff)
8042 keyboard command reset (0xff) was returning ACK(0xfa) as well as BAT(0xaa). From [1], 0xaa seems to be represent OK. However, the spec does not expect OK to be sent in response to reset command. Coreboot libpayload 8042 driver was recently updated to send a reset command on initialization to make it work with certain payloads. Sending back 0xaa along with ACK seems to make the initialization fail because it is not expecting anything other than ACK. This change gets rid of the return value 0xaa that was being sent for reset command. [1] http://zet.aluzina.org/images/d/d4/8042.pdf BUG=b:134366527 BRANCH=None TEST=Verified that keyboard initialization no longer fails in depthcharge. Change-Id: I0ac917dc94aa381ab705474cd7bcf494fb8b10d6 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1641756 Reviewed-by: Frank Wu <frank_wu@compal.corp-partner.google.com> Reviewed-by: Duncan Laurie <dlaurie@google.com> Tested-by: Frank Wu <frank_wu@compal.corp-partner.google.com> Tested-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Diffstat (limited to 'common/keyboard_8042.c')
-rw-r--r--common/keyboard_8042.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/common/keyboard_8042.c b/common/keyboard_8042.c
index 660bd3970e..d1efbc9df2 100644
--- a/common/keyboard_8042.c
+++ b/common/keyboard_8042.c
@@ -609,12 +609,10 @@ static int handle_keyboard_data(uint8_t data, uint8_t *output)
keyboard_clear_buffer();
break;
- case I8042_CMD_RESET_BAT:
+ case I8042_CMD_RESET:
reset_rate_and_delay();
keyboard_clear_buffer();
output[out_len++] = I8042_RET_ACK;
- output[out_len++] = I8042_RET_BAT;
- output[out_len++] = I8042_RET_BAT;
break;
case I8042_CMD_RESEND: