From 933c4e7aa4b873f0ad9cd4c348a1ea4f37f66aa7 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Fri, 29 Jan 2016 09:45:51 -0800 Subject: [PATCH] vboot_display: Keep track of displayed screen Vboot needs to track the currently displayed screen so when it needs to change the locale or display the debug overlay it knows which screen to redraw. Currently only the legacy path is doing this so change the new path to update the current screen if it is successfully drawn. BUG=chrome-os-partner:49766 BRANCH=glados TEST=boot on glados in dev mode, hit tab and ensure screen does not go black Change-Id: I4a2bf028275db57b2d0469fc1cb574e871820713 Signed-off-by: Duncan Laurie Reviewed-on: https://chromium-review.googlesource.com/324549 Reviewed-by: Aaron Durbin --- firmware/lib/vboot_display.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c index 8dbf2f2b8b..f2978fb002 100644 --- a/firmware/lib/vboot_display.c +++ b/firmware/lib/vboot_display.c @@ -357,8 +357,14 @@ VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, /* Read the locale last saved */ VbNvGet(vncptr, VBNV_LOCALIZATION_INDEX, &locale); - if (gbb->bmpfv_size == 0) - return VbExDisplayScreen(screen, locale); + if (gbb->bmpfv_size == 0) { + VbError_t ret = VbExDisplayScreen(screen, locale); + + /* Keep track of the currently displayed screen */ + if (ret == VBERROR_SUCCESS) + disp_current_screen = screen; + return ret; + } return VbDisplayScreenLegacy(cparams, screen, force, vncptr, locale); }