From: Pali Rohár Date: Wed, 9 Mar 2022 19:46:00 +0000 (+0100) Subject: video: Allow drivers to allocate the frame buffer themselves X-Git-Tag: v2025.01-rc5-pxa1908~1504^2~1 X-Git-Url: http://git.dujemihanovic.xyz/contact?a=commitdiff_plain;h=bd0df8236987df03e6131f923e31c3d9f943d086;p=u-boot.git video: Allow drivers to allocate the frame buffer themselves When plat->base is set by driver then skip frame buffer reservation and allocation. Signed-off-by: Pali Rohár --- diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index 7d499bcec5..88797d4a21 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -33,7 +33,8 @@ * information represents the requires size and alignment of the frame buffer * for the device. The values can be an over-estimate but cannot be too * small. The actual values will be suppled (in the same manner) by the bind() - * method after relocation. + * method after relocation. Additionally driver can allocate frame buffer + * itself by setting plat->base. * * This information is then picked up by video_reserve() which works out how * much memory is needed for all devices. This is allocated between @@ -78,6 +79,10 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp) if (!plat->size) return 0; + /* Allow drivers to allocate the frame buffer themselves */ + if (plat->base) + return 0; + align = plat->align ? plat->align : 1 << 20; base = *addrp - plat->size; base &= ~(align - 1);