diff options
author | Nico Huber <nico.h@gmx.de> | 2020-11-01 20:13:27 +0100 |
---|---|---|
committer | Hung-Te Lin <hungte@chromium.org> | 2020-12-24 08:20:01 +0000 |
commit | 777c5997475f4b79f977fb52ba130acda900325e (patch) | |
tree | 32e4a6be3661881bd1b1d054ccdd5fd07408ef8f /payloads/libpayload | |
parent | 260dd9eb7e91de3a14ba095eccc7766c6ed61b2f (diff) | |
download | coreboot-777c5997475f4b79f977fb52ba130acda900325e.tar.xz |
libpayload/keyboard: Add timestamp to track time spent in a state
Will be used to time out in states that don't always advance.
Change-Id: I28235e7638d8157cedf81fd915a41d28a1fc070b
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47087
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/drivers/i8042/keyboard.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c index dcba031268..114e18bc40 100644 --- a/payloads/libpayload/drivers/i8042/keyboard.c +++ b/payloads/libpayload/drivers/i8042/keyboard.c @@ -245,6 +245,7 @@ static enum keyboard_state { } keyboard_state; static uint64_t keyboard_time; +static uint64_t state_time; static void keyboard_poll(void) { @@ -334,8 +335,10 @@ static void keyboard_poll(void) break; } - if (keyboard_state != next_state) + if (keyboard_state != next_state) { keyboard_state = next_state; + state_time = timer_us(0); + } } bool keyboard_havechar(void) @@ -489,7 +492,7 @@ void keyboard_init(void) i8042_cmd(I8042_CMD_EN_KB); keyboard_state = STATE_DISABLE_SCAN; - keyboard_time = timer_us(0); + keyboard_time = state_time = timer_us(0); console_add_input_driver(&cons); } |