Message ID | 20231110152944.647535-5-devarsht@ti.com |
---|---|
State | Changes Requested |
Delegated to: | Anatolij Gustschin |
Headers | show |
Series | Move framebuffer reservation for SPL to RAM end | expand |
Hi Devarsh, On Fri, 10 Nov 2023 at 08:29, Devarsh Thakkar <devarsht@ti.com> wrote: > > Skip framebufer reservation if it was already reserved > from previous stage and whose information was passed > using a bloblist. > > Signed-off-by: Devarsh Thakkar <devarsht@ti.com> > Reviewed-by: Simon Glass <sjg@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) { Can you drop that line? It should be an error to not have found the handoff info. > + 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 > Regards, Simon
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;