diff options
author | Mathew King <mathewk@chromium.org> | 2019-03-18 16:13:26 -0600 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-26 04:43:05 -0700 |
commit | 4cab32fbf65910513e2e6cbda1d283d6afce59a5 (patch) | |
tree | 40768006398966fa4e44464240c8a4db72d8f16e | |
parent | c4daa6e936a5dc2dad28bb1e07af995c05b37a99 (diff) | |
download | vboot-4cab32fbf65910513e2e6cbda1d283d6afce59a5.tar.gz |
Arrow keys change language on vendor data uis
BUG=b:127843397
TEST=Tested set and confirm screens on local arcada device
BRANCH=none
Change-Id: Ifafba3fd32a79131cf1d2059ef2147c074f3a3b6
Reviewed-on: https://chromium-review.googlesource.com/1529751
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Mathew King <mathewk@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
-rw-r--r-- | firmware/lib/include/vboot_display.h | 3 | ||||
-rw-r--r-- | firmware/lib/vboot_display.c | 5 | ||||
-rw-r--r-- | firmware/lib/vboot_ui.c | 14 | ||||
-rw-r--r-- | tests/vboot_display_tests.c | 14 |
4 files changed, 20 insertions, 16 deletions
diff --git a/firmware/lib/include/vboot_display.h b/firmware/lib/include/vboot_display.h index 4c8df0e6..99e49f1a 100644 --- a/firmware/lib/include/vboot_display.h +++ b/firmware/lib/include/vboot_display.h @@ -16,7 +16,8 @@ VbError_t VbDisplayMenu(struct vb2_context *ctx, uint32_t screen, int force, uint32_t selected_index, uint32_t disabled_idx_mask); VbError_t VbDisplayDebugInfo(struct vb2_context *ctx); -VbError_t VbCheckDisplayKey(struct vb2_context *ctx, uint32_t key); +VbError_t VbCheckDisplayKey(struct vb2_context *ctx, uint32_t key, + const VbScreenData *data); /** * Return a description of the recovery reason code. diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c index c7094254..6ed5ad6c 100644 --- a/firmware/lib/vboot_display.c +++ b/firmware/lib/vboot_display.c @@ -412,7 +412,8 @@ VbError_t VbDisplayDebugInfo(struct vb2_context *ctx) #define MAGIC_WORD "xyzzy" static uint8_t MagicBuffer[MAGIC_WORD_LEN]; -VbError_t VbCheckDisplayKey(struct vb2_context *ctx, uint32_t key) +VbError_t VbCheckDisplayKey(struct vb2_context *ctx, uint32_t key, + const VbScreenData *data) { int i; @@ -457,7 +458,7 @@ VbError_t VbCheckDisplayKey(struct vb2_context *ctx, uint32_t key) #endif /* Force redraw of current screen */ - return VbDisplayScreen(ctx, disp_current_screen, 1, NULL); + return VbDisplayScreen(ctx, disp_current_screen, 1, data); } if (0 == memcmp(MagicBuffer, MAGIC_WORD, MAGIC_WORD_LEN)) { diff --git a/firmware/lib/vboot_ui.c b/firmware/lib/vboot_ui.c index 2e3bb270..65f47986 100644 --- a/firmware/lib/vboot_ui.c +++ b/firmware/lib/vboot_ui.c @@ -159,7 +159,7 @@ int VbUserConfirms(struct vb2_context *ctx, uint32_t confirm_flags) return 1; } } - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); } VbExSleepMs(CONFIRM_KEY_DELAY); } @@ -215,7 +215,7 @@ VbError_t vb2_altfw_ui(struct vb2_context *ctx) break; default: VB2_DEBUG("VbBootDeveloper() - pressed key %d\n", key); - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); break; } VbExSleepMs(DEV_KEY_DELAY); @@ -296,6 +296,7 @@ VbError_t vb2_enter_vendor_data_ui(struct vb2_context *ctx, char *data_value) break; default: VB2_DEBUG("Vendor Data UI - pressed key %d\n", key); + VbCheckDisplayKey(ctx, key, &data); break; } VbExSleepMs(DEV_KEY_DELAY); @@ -362,6 +363,7 @@ VbError_t vb2_vendor_data_ui(struct vb2_context *ctx) } default: VB2_DEBUG("Vendor Data UI - pressed key %d\n", key); + VbCheckDisplayKey(ctx, key, &data); break; } VbExSleepMs(DEV_KEY_DELAY); @@ -444,7 +446,7 @@ VbError_t vb2_diagnostics_ui(struct vb2_context *ctx) default: VB2_DEBUG("vb2_diagnostics_ui() - pressed key %d\n", key); - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); break; } if (VbExGetTimer() - start_time_us >= 30 * VB_USEC_PER_SEC) { @@ -738,7 +740,7 @@ VbError_t vb2_developer_ui(struct vb2_context *ctx) break; default: VB2_DEBUG("VbBootDeveloper() - pressed key %d\n", key); - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); break; } @@ -822,7 +824,7 @@ static VbError_t recovery_ui(struct vb2_context *ctx) VB2_DEBUG("VbBootRecovery() waiting for manual recovery\n"); while (1) { key = VbExKeyboardRead(); - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); if (VbWantShutdown(ctx, key)) return VBERROR_SHUTDOWN_REQUESTED; VbExSleepMs(REC_KEY_DELAY); @@ -925,7 +927,7 @@ static VbError_t recovery_ui(struct vb2_context *ctx) vb2_nv_set(ctx, VB2_NV_DIAG_REQUEST, 1); return VBERROR_REBOOT_REQUIRED; } else { - VbCheckDisplayKey(ctx, key); + VbCheckDisplayKey(ctx, key, NULL); } if (VbWantShutdown(ctx, key)) return VBERROR_SHUTDOWN_REQUESTED; diff --git a/tests/vboot_display_tests.c b/tests/vboot_display_tests.c index 2c7691e1..f010ddd6 100644 --- a/tests/vboot_display_tests.c +++ b/tests/vboot_display_tests.c @@ -146,28 +146,28 @@ static void DebugInfoTest(void) static void DisplayKeyTest(void) { ResetMocks(); - VbCheckDisplayKey(&ctx, 'q'); + VbCheckDisplayKey(&ctx, 'q', NULL); TEST_EQ(*debug_info, '\0', "DisplayKey q = does nothing"); ResetMocks(); - VbCheckDisplayKey(&ctx, '\t'); + VbCheckDisplayKey(&ctx, '\t', NULL); TEST_NEQ(*debug_info, '\0', "DisplayKey tab = display"); /* Toggle localization */ ResetMocks(); vb2_nv_set(&ctx, VB2_NV_LOCALIZATION_INDEX, 0); - VbCheckDisplayKey(&ctx, VB_KEY_DOWN); + VbCheckDisplayKey(&ctx, VB_KEY_DOWN, NULL); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX), 2, "DisplayKey up"); - VbCheckDisplayKey(&ctx, VB_KEY_LEFT); + VbCheckDisplayKey(&ctx, VB_KEY_LEFT, NULL); vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX), 1, "DisplayKey left"); - VbCheckDisplayKey(&ctx, VB_KEY_RIGHT); + VbCheckDisplayKey(&ctx, VB_KEY_RIGHT, NULL); vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX), 2, "DisplayKey right"); - VbCheckDisplayKey(&ctx, VB_KEY_UP); + VbCheckDisplayKey(&ctx, VB_KEY_UP, NULL); vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX), 0, "DisplayKey up"); @@ -176,7 +176,7 @@ static void DisplayKeyTest(void) ResetMocks(); vb2_nv_set(&ctx, VB2_NV_LOCALIZATION_INDEX, 1); mock_localization_count = 0xffffffff; - VbCheckDisplayKey(&ctx, VB_KEY_UP); + VbCheckDisplayKey(&ctx, VB_KEY_UP, NULL); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_LOCALIZATION_INDEX), 0, "DisplayKey invalid"); } |