Skip framebufer reservation if it was already reserved
from previous stage and whose information was passed
using a bloblist.

Signed-off-by: Devarsh Thakkar <[email protected]>
---
 drivers/video/video-uclass.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index f743ed74c8..bac30187e7 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -123,6 +123,14 @@ 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)
+                       return 0;
+       }
+
        gd->video_top = *addrp;
        for (uclass_find_first_device(UCLASS_VIDEO, &dev);
             dev;
-- 
2.34.1

Reply via email to