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 <pali@kernel.org>
This commit is contained in:
Pali Rohár 2022-03-09 20:46:00 +01:00 committed by Anatolij Gustschin
parent 515a2f7c02
commit bd0df82369

View file

@ -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);