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>
This commit is contained in:
Nico Huber 2020-11-01 20:13:27 +01:00 committed by Hung-Te Lin
parent 260dd9eb7e
commit 777c599747
1 changed files with 5 additions and 2 deletions

View File

@ -245,6 +245,7 @@ static enum keyboard_state {
} keyboard_state; } keyboard_state;
static uint64_t keyboard_time; static uint64_t keyboard_time;
static uint64_t state_time;
static void keyboard_poll(void) static void keyboard_poll(void)
{ {
@ -334,8 +335,10 @@ static void keyboard_poll(void)
break; break;
} }
if (keyboard_state != next_state) if (keyboard_state != next_state) {
keyboard_state = next_state; keyboard_state = next_state;
state_time = timer_us(0);
}
} }
bool keyboard_havechar(void) bool keyboard_havechar(void)
@ -489,7 +492,7 @@ void keyboard_init(void)
i8042_cmd(I8042_CMD_EN_KB); i8042_cmd(I8042_CMD_EN_KB);
keyboard_state = STATE_DISABLE_SCAN; keyboard_state = STATE_DISABLE_SCAN;
keyboard_time = timer_us(0); keyboard_time = state_time = timer_us(0);
console_add_input_driver(&cons); console_add_input_driver(&cons);
} }