video: stm32: stm32_ltdc: align framebuffer on 2MB
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Mon, 15 Nov 2021 15:32:22 +0000 (16:32 +0100)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Tue, 30 Nov 2021 15:43:28 +0000 (16:43 +0100)
Align the framebuffer size on MMU_SECTION_SIZE in kernel, = max 2MB for
LPAE for armV7, to avoid issue with the simple frame buffer activation,
when U-Boot add a reserved memory in the kernel device tree to preserve
the splash screen until Linux driver initialization.

See Linux documentation for details:
Documentation/devicetree/bindings/display/simple-framebuffer.yaml

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
drivers/video/stm32/stm32_ltdc.c

index 65c882d..87e5fd5 100644 (file)
@@ -459,7 +459,10 @@ static int stm32_ltdc_bind(struct udevice *dev)
        uc_plat->size = CONFIG_VIDEO_STM32_MAX_XRES *
                        CONFIG_VIDEO_STM32_MAX_YRES *
                        (CONFIG_VIDEO_STM32_MAX_BPP >> 3);
-       dev_dbg(dev, "frame buffer max size %d bytes\n", uc_plat->size);
+       /* align framebuffer on kernel MMU_SECTION_SIZE = max 2MB for LPAE */
+       uc_plat->align = SZ_2M;
+       dev_dbg(dev, "frame buffer max size %d bytes align %x\n",
+               uc_plat->size, uc_plat->align);
 
        return 0;
 }