[U-Boot] [PATCH 08/11] dm: video: Don't do anything in alloc_fb() when plat->size is zero

Bin Meng bmeng.cn at gmail.com
Sun Oct 9 13:14:17 CEST 2016


With DM VESA driver on x86 boards, plat->base/size/align are all
zeroes and starting address passed to alloc_fb() happens to be 1MB
aligned, so this routine does not trigger any issue. On QEMU with
U-Boot as coreboot payload, the starting address is within 1MB
range (eg: 0x7fb0000), thus causes failure in video_post_bind().

Actually if plat->size is zero, it makes no sense to do anything
in this routine. Add such check there.

Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---

 drivers/video/video-uclass.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index b6dd0f5..11ca793 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -54,6 +54,9 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
 	struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
 	ulong base, align, size;
 
+	if (!plat->size)
+		return 0;
+
 	align = plat->align ? plat->align : 1 << 20;
 	base = *addrp - plat->size;
 	base &= ~(align - 1);
-- 
2.9.2



More information about the U-Boot mailing list