diff options
author | Nicolas Boichat <drinkcat@google.com> | 2016-11-15 09:28:13 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-11-17 07:08:25 -0800 |
commit | ff9c5dd0d281d9a4c86449f1a8c2f3db6a0a7217 (patch) | |
tree | 1e34cc960201eba1bf0fbe8d2e05aca8957613cf | |
parent | dfc9b86c82204096e869678ad3b3b08dfa06ae6b (diff) | |
download | chrome-ec-ff9c5dd0d281d9a4c86449f1a8c2f3db6a0a7217.tar.gz |
keyboard: Always call keyboard_state_changed
8042 and USB HID keyboard will both use that function. Let's just
make it a no-op in the MKBP case.
BRANCH=none
BUG=chrome-os-partner:59083
TEST=make buildall -j
Change-Id: Iaee1bf2c6edff3db28f3db89fc292f9d1064483b
Reviewed-on: https://chromium-review.googlesource.com/411602
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | common/keyboard_scan.c | 8 | ||||
-rw-r--r-- | include/keyboard_8042.h | 7 | ||||
-rw-r--r-- | include/keyboard_protocol.h | 12 |
3 files changed, 17 insertions, 10 deletions
diff --git a/common/keyboard_scan.c b/common/keyboard_scan.c index dd97e7f757..876d06c9fc 100644 --- a/common/keyboard_scan.c +++ b/common/keyboard_scan.c @@ -472,11 +472,13 @@ static int check_keys_changed(uint8_t *state) state[c] ^= mask; any_change = 1; -#ifdef CONFIG_KEYBOARD_PROTOCOL_8042 /* Inform keyboard module if scanning is enabled */ - if (keyboard_scan_is_enabled()) + if (keyboard_scan_is_enabled()) { + /* This is no-op for protocols that require a + * full keyboard matrix (e.g., MKBP). + */ keyboard_state_changed(i, c, new_mask ? 1 : 0); -#endif + } } } diff --git a/include/keyboard_8042.h b/include/keyboard_8042.h index 2d58c4c184..00fdc9901b 100644 --- a/include/keyboard_8042.h +++ b/include/keyboard_8042.h @@ -28,11 +28,4 @@ void button_state_changed(enum keyboard_button_type button, int is_pressed); */ void keyboard_host_write(int data, int is_cmd); -/** - * Called by keyboard scan code once any key state change (after de-bounce), - * - * This function will look up matrix table and convert scancode host. - */ -void keyboard_state_changed(int row, int col, int is_pressed); - #endif /* __CROS_EC_KEYBOARD_8042_H */ diff --git a/include/keyboard_protocol.h b/include/keyboard_protocol.h index 6fc0a06f7c..a8eafe308d 100644 --- a/include/keyboard_protocol.h +++ b/include/keyboard_protocol.h @@ -35,6 +35,18 @@ void keyboard_update_button(enum keyboard_button_type button, int is_pressed); #ifdef CONFIG_KEYBOARD_PROTOCOL_MKBP #include "keyboard_mkbp.h" + +/* MKBP protocol takes the whole keyboard matrix, and does not care about + * individual key presses. + */ +static inline void keyboard_state_changed(int row, int col, int is_pressed) {} +#else +/** + * Called by keyboard scan code once any key state change (after de-bounce), + * + * This function will look up matrix table and convert scancode host. + */ +void keyboard_state_changed(int row, int col, int is_pressed); #endif #endif /* __CROS_EC_KEYBOARD_PROTOCOL_H */ |