diff options
author | Simon Glass <sjg@chromium.org> | 2012-09-06 14:55:31 -0700 |
---|---|---|
committer | Tom Wai-Hong Tam <waihong@chromium.org> | 2012-09-07 01:08:59 -0700 |
commit | cd9118496c69b473b937197354700ffd8a948e06 (patch) | |
tree | 4416c455e044e7ee234bdc34ba9bd765c8c1c250 | |
parent | ca4931ebd1e6e11e7930d020d2d866647aeac570 (diff) | |
download | vboot-cd9118496c69b473b937197354700ffd8a948e06.tar.gz |
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:13717
BRANCH=snow
TEST=manual
Boot into recovery
Try changing language on snow with left/right arrow and see that it updates
instantly.
Original-Change-Id: I2ae411bc36fdb2badac11595b099bca43f116669
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/32463
Commit-Ready: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
(cherry picked from commit 74fa20748dc71556c9a53d8056eab71709143c24)
Change-Id: I5f147f15c394ef394d572dacddd7cbacfdc88cb8
Reviewed-on: https://gerrit.chromium.org/gerrit/32524
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@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 95a7bb80..a35fd31a 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -273,8 +273,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) { @@ -312,18 +313,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 @@ -340,7 +341,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 */ @@ -370,7 +371,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); } } |