vboot_display: Keep track of displayed screen stable
authorDuncan Laurie <dlaurie@chromium.org>
Fri, 29 Jan 2016 17:45:51 +0000 (09:45 -0800)
committerchrome-bot <chrome-bot@chromium.org>
Sat, 30 Jan 2016 00:01:57 +0000 (16:01 -0800)
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 <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/324549
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
firmware/lib/vboot_display.c

index 8dbf2f2..f2978fb 100644 (file)
@@ -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);
 }