cros_ec: Change keyboard scanning method.
authorAseda Aboagye <aaboagye@google.com>
Sat, 9 Jul 2016 01:20:32 +0000 (18:20 -0700)
committerchrome-bot <chrome-bot@chromium.org>
Wed, 20 Jul 2016 01:33:41 +0000 (18:33 -0700)
commitf88af26b44fc8941a59b45dfb36f8fe4225e07d0
tree326b92ed927eb231d2798eca6be50f18aa18f319
parent2e3bfaafca225582b33d892405395889d5390111
cros_ec: Change keyboard scanning method.

The Matrix KeyBoard Protocol (MKBP) was recently extended to support
reporting button and switch events. Consequently, support for the
EC_CMD_MKBP_GET_STATE host command was dropped since the keyboard FIFO
became a general MKBP events FIFO and that host command assumed that the
FIFO was strictly for keyboard matrices.  This has been superseded by the
EC_CMD_GET_NEXT_EVENT host command.

Currently, button and switch events may be present in the FIFO, but we
will just ignore those and drop them on the floor.  For those buttons
and switches that we care about, they are handled in different ways.

This commit introduces a new Kconfig:

    CONFIG_DRIVER_INPUT_MKBP_OLD_COMMAND

This config option should be used to enable retrieving of key matrix
changes via EC_CMD_MKBP_GET_STATE. This is for legacy Chrome ECs where
the MKBP FIFO was solely just a key matrix FIFO.

BUG=chromium:626863
BRANCH=None
TEST=Verify that keypresses are recognized during FW screens on kevin.
TEST=Verify that button presses and other events are ignored during FW
screens on kevin.

CQ-DEPEND=CL:358926

Change-Id: Ia9cf29b063178b9eca20e9d2602dc91308e56d4a
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://chromium-review.googlesource.com/358989
Commit-Ready: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
23 files changed:
board/daisy/defconfig
board/elm/defconfig
board/nyan/defconfig
board/nyan_big/defconfig
board/nyan_blaze/defconfig
board/oak/defconfig
board/peach_pit/defconfig
board/rush/defconfig
board/veyron_gus/defconfig
board/veyron_jaq/defconfig
board/veyron_jerry/defconfig
board/veyron_mighty/defconfig
board/veyron_minnie/defconfig
board/veyron_nicky/defconfig
board/veyron_pinky/defconfig
board/veyron_shark/defconfig
board/veyron_speedy/defconfig
board/veyron_thea/defconfig
src/drivers/ec/cros/commands.h
src/drivers/ec/cros/ec.c
src/drivers/ec/cros/ec.h
src/drivers/input/mkbp/Kconfig
src/drivers/input/mkbp/keyboard.c