summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@google.com>2016-11-15 09:28:13 +0800
committerchrome-bot <chrome-bot@chromium.org>2016-11-17 07:08:25 -0800
commitff9c5dd0d281d9a4c86449f1a8c2f3db6a0a7217 (patch)
tree1e34cc960201eba1bf0fbe8d2e05aca8957613cf
parentdfc9b86c82204096e869678ad3b3b08dfa06ae6b (diff)
downloadchrome-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.c8
-rw-r--r--include/keyboard_8042.h7
-rw-r--r--include/keyboard_protocol.h12
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 */