From 6112f20679dfc6c61dd69e7cd711970a01746ec0 Mon Sep 17 00:00:00 2001 From: Aseda Aboagye Date: Wed, 4 Nov 2015 14:40:53 -0800 Subject: [PATCH] common: keyboard_scan: Add items to .bss.slow. BUG=chrome-os-partner:46056 BUG=chrome-os-partner:46063 BRANCH=None TEST=Enable CONFIG_REPLACE_LOADER_WITH_BSS_SLOW on GLaDOS. Build, flash, and verify that AP and EC boot. Perform typing test with no jank or other oddities. TEST='sysjump rw' and repeat the typing test. TEST=Hold down arrow down and issue 'reboot' command. TEST=make -j buildall tests CQ-DEPEND=CL:311209 Change-Id: I35911862af2a4e9feb795b2a9a2aafa97687e2f2 Signed-off-by: Aseda Aboagye Reviewed-on: https://chromium-review.googlesource.com/311411 Commit-Ready: Aseda Aboagye Tested-by: Aseda Aboagye Reviewed-by: Randall Spangler --- common/keyboard_scan.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/common/keyboard_scan.c b/common/keyboard_scan.c index 5e71554e3f..bccc601125 100644 --- a/common/keyboard_scan.c +++ b/common/keyboard_scan.c @@ -69,27 +69,34 @@ static const struct boot_key_entry boot_key_list[] = { }; static enum boot_key boot_key_value = BOOT_KEY_OTHER; -static uint8_t debounced_state[KEYBOARD_COLS]; /* Debounced key matrix */ -static uint8_t prev_state[KEYBOARD_COLS]; /* Matrix from previous scan */ -static uint8_t debouncing[KEYBOARD_COLS]; /* Mask of keys being debounced */ -static uint8_t simulated_key[KEYBOARD_COLS]; /* Keys simulated-pressed */ +/* Debounced key matrix */ +static uint8_t __bss_slow debounced_state[KEYBOARD_COLS]; +/* Matrix from previous scan */ +static uint8_t __bss_slow prev_state[KEYBOARD_COLS]; +/* Mask of keys being debounced */ +static uint8_t __bss_slow debouncing[KEYBOARD_COLS]; +/* Keys simulated-pressed */ +static uint8_t __bss_slow simulated_key[KEYBOARD_COLS]; -static uint32_t scan_time[SCAN_TIME_COUNT]; /* Times of last scans */ -static int scan_time_index; /* Current scan_time[] index */ +/* Times of last scans */ +static uint32_t __bss_slow scan_time[SCAN_TIME_COUNT]; +/* Current scan_time[] index */ +static int __bss_slow scan_time_index; /* Index into scan_time[] when each key started debouncing */ -static uint8_t scan_edge_index[KEYBOARD_COLS][KEYBOARD_ROWS]; +static uint8_t __bss_slow scan_edge_index[KEYBOARD_COLS][KEYBOARD_ROWS]; /* Minimum delay between keyboard scans based on current clock frequency */ -static uint32_t post_scan_clock_us; +static uint32_t __bss_slow post_scan_clock_us; /* * Print all keyboard scan state changes? Off by default because it generates * a lot of debug output, which makes the saved EC console data less useful. */ -static int print_state_changes; +static int __bss_slow print_state_changes; -static int disable_scanning_mask; /* Must init to 0 for scanning at boot */ +/* Must init to 0 for scanning at boot */ +static int __bss_slow disable_scanning_mask; /* Constantly incrementing counter of the number of times we polled */ static volatile int kbd_polls; @@ -401,7 +408,7 @@ static int check_keys_changed(uint8_t *state) int any_pressed = 0; int c, i; int any_change = 0; - static uint8_t new_state[KEYBOARD_COLS]; + static uint8_t __bss_slow new_state[KEYBOARD_COLS]; uint32_t tnow = get_time().le.lo; /* Save the current scan time */