diff options
author | Simon Glass <sjg@chromium.org> | 2012-09-06 14:55:31 -0700 |
---|---|---|
committer | Shawn Nematbakhsh <shawnn@google.com> | 2012-10-17 16:52:30 -0700 |
commit | 077004ecd7abb229217c6574f7c972db25ff274b (patch) | |
tree | 4c5224669f3d289669a62cc6663473c8d1cc9993 | |
parent | 3a8345120573ac40cf237ab7a31474b83effe700 (diff) | |
download | vboot-077004ecd7abb229217c6574f7c972db25ff274b.tar.gz |
BUTTERFLY-FIRMWARE: Check keyboard more often in recovery mode
Currently we check the keyboard each 250ms. This makes for a pretty choppy
experience when changing languages. Change to check every 20ms, without
changing the disk check interval (which remains 1s).
BUG=chrome-os-partner:15396
BRANCH=butterfly
TEST=manual, verify basic firmware functions.
Change-Id: I2c7a810ec1358aa3ae7876c74ed7f857b9e14bde
Original-Change-Id: I2ae411bc36fdb2badac11595b099bca43f116669
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35784
Reviewed-by: Shawn Nematbakhsh <shawnn@google.com>
Tested-by: Shawn Nematbakhsh <shawnn@google.com>
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c index c0261e89..378400f0 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -285,8 +285,9 @@ fallout: return VbTryLoadKernel(cparams, p, VB_DISK_FLAG_FIXED); } -/* Delay between disk checks in recovery mode */ -#define REC_DELAY_INCREMENT 250 +/* Delay in recovery mode */ +#define REC_DISK_DELAY 1000 /* Check disks every 1s */ +#define REC_KEY_DELAY 20 /* Check keys every 20ms */ /* Handle a recovery-mode boot */ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) { @@ -324,18 +325,18 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) { /* Scan keyboard more frequently than media, since x86 platforms * don't like to scan USB too rapidly. */ - for (i = 0; i < 4; i++) { + for (i = 0; i < REC_DISK_DELAY; i += REC_KEY_DELAY) { VbCheckDisplayKey(cparams, VbExKeyboardRead(), &vnc); if (VbExIsShutdownRequested()) return VBERROR_SHUTDOWN_REQUESTED; - VbExSleepMs(REC_DELAY_INCREMENT); + VbExSleepMs(REC_KEY_DELAY); } } } /* Loop and wait for a recovery image */ while (1) { - VBDEBUG(("VbBootRecovery() attempting to load kernel\n")); + VBDEBUG(("VbBootRecovery() attempting to load kernel2\n")); retval = VbTryLoadKernel(cparams, p, VB_DISK_FLAG_REMOVABLE); /* Clear recovery requests from failed kernel loading, since we're @@ -352,7 +353,7 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) { /* Scan keyboard more frequently than media, since x86 platforms don't like * to scan USB too rapidly. */ - for (i = 0; i < 4; i++) { + for (i = 0; i < REC_DISK_DELAY; i += REC_KEY_DELAY) { key = VbExKeyboardRead(); /* We might want to enter dev-mode from the Insert screen if... */ if (key == 0x04 && /* user pressed Ctrl-D */ @@ -382,7 +383,7 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) { VbCheckDisplayKey(cparams, key, &vnc); if (VbExIsShutdownRequested()) return VBERROR_SHUTDOWN_REQUESTED; - VbExSleepMs(REC_DELAY_INCREMENT); + VbExSleepMs(REC_KEY_DELAY); } } |