diff options
author | Simon Glass <sjg@chromium.org> | 2012-09-06 14:55:31 -0700 |
---|---|---|
committer | Shawn Nematbakhsh <shawnn@chromium.org> | 2012-09-19 17:02:29 -0700 |
commit | e09eadf4ad00418d3455926d453f502219ea0d5a (patch) | |
tree | d11b5e63e7ee9cbd94bae53084ab11964e8c183b | |
parent | 1d053f6e2341dae1b2c48a422fbb5ce46a3bbefc (diff) | |
download | vboot-e09eadf4ad00418d3455926d453f502219ea0d5a.tar.gz |
STOUT-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:13993
BRANCH=snow
TEST=manual
Boot into recovery
Try changing language on snow with left/right arrow and see that it updates
instantly.
Change-Id: I79dd16a7897062fa5540ca22faf132c302a7ef7d
Original-Change-Id: I2ae411bc36fdb2badac11595b099bca43f116669
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/33650
Reviewed-by: Shawn Nematbakhsh <shawnn@chromium.org>
Tested-by: Shawn Nematbakhsh <shawnn@chromium.org>
-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 0fe36366..b9a4b62b 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -274,8 +274,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) { @@ -313,18 +314,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 @@ -341,7 +342,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 */ @@ -371,7 +372,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); } } |