Skip framebufer reservation if it was already reserved from previous stage and whose information was passed using a bloblist.
Signed-off-by: Devarsh Thakkar <devar...@ti.com> Reviewed-by: Simon Glass <s...@chromium.org> --- V2: - Add debug prints - Fix commenting style V3: - Fix commenting style --- drivers/video/video-uclass.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index f743ed74c8..f619b5ae56 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -123,6 +123,19 @@ int video_reserve(ulong *addrp) struct udevice *dev; ulong size; + if (IS_ENABLED(CONFIG_SPL_VIDEO_HANDOFF) && spl_phase() > PHASE_SPL) { + /* + * Skip allocation if already received a bloblist which + * filled below fields + */ + if (gd->fb_base && gd->video_top && gd->video_bottom) { + debug("Found pre-reserved video memory from %lx to %lx\n", + gd->video_bottom, gd->video_top); + debug("Skipping video frame buffer allocation\n"); + return 0; + } + } + gd->video_top = *addrp; for (uclass_find_first_device(UCLASS_VIDEO, &dev); dev; -- 2.34.1