summaryrefslogtreecommitdiff
path: root/firmware/2lib/2ui.c
diff options
context:
space:
mode:
authorHsuan Ting Chen <roccochen@chromium.org>2020-07-30 13:52:34 +0800
committerCommit Bot <commit-bot@chromium.org>2020-08-30 17:18:40 +0000
commit4417f398d9eaee16e9c08e5b231244b01ea745b1 (patch)
tree3a6d280711c0e9a93b9afc72b2efb69380d1c6e4 /firmware/2lib/2ui.c
parent34c589e5c189a635b63917ee63997b103e20dbf4 (diff)
downloadvboot-4417f398d9eaee16e9c08e5b231244b01ea745b1.tar.gz
vboot/ui: Add reinit screen hookfactory-trogdor-13443.B
Re-initialize the log screen when going back from another screen. BRANCH=puff BUG=b:146399181, b:146105976 TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests TEST=USE="menu_ui" emerge-puff depthcharge when the firmware log screen is implemented, select "advanced options", navigate to firmware log screen, press <TAB> to debug info, and select back to firmware log screen Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ie44805e3bfb14a4a8b660a18a123a184a4c5ea45 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2329224 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> (cherry picked from commit 2cb872fa3056158c35f82a9412e667b69ccf5a49) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2332200 Reviewed-by: Joel Kitching <kitching@chromium.org>
Diffstat (limited to 'firmware/2lib/2ui.c')
-rw-r--r--firmware/2lib/2ui.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/2lib/2ui.c b/firmware/2lib/2ui.c
index 1bdc2739..99cedb0c 100644
--- a/firmware/2lib/2ui.c
+++ b/firmware/2lib/2ui.c
@@ -214,6 +214,8 @@ vb2_error_t vb2_ui_screen_back(struct vb2_ui_context *ui)
tmp = ui->state->prev;
free(ui->state);
ui->state = tmp;
+ if (ui->state->screen->reinit)
+ return ui->state->screen->reinit(ui);
} else {
VB2_DEBUG("ERROR: No previous screen; ignoring\n");
}
@@ -259,6 +261,8 @@ vb2_error_t vb2_ui_screen_change(struct vb2_ui_context *ui, enum vb2_screen id)
ui->state = cur_state->prev;
free(cur_state);
}
+ if (ui->state->screen->reinit)
+ return ui->state->screen->reinit(ui);
} else {
/* Allocate the requested screen on top of the stack. */
cur_state = malloc(sizeof(*ui->state));