All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen
@ 2021-11-15 15:32 Patrick Delaunay
  2021-11-15 15:32 ` [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig Patrick Delaunay
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Alexandru Gagniuc,
	Anatolij Gustschin, Artem Lapkin, Asherah Connor, Bin Meng,
	Heinrich Schuchardt, Igor Opaniuk, Joel Peshkin,
	Jorge Ramirez-Ortiz, Marek Behún, Matthias Brugger,
	Michal Simek, Ovidiu Panait, Patrice Chotard, Peng Fan,
	Priyanka Jain, Simon Glass, Stefan Roese, Thomas Huth,
	U-Boot STM32, Yannick Fertré


Use simple framebuffer node in the Linux kernel device tree
to preserved the resources (clock, memory) used by the stm32 video
driver to display the splashscreen.

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

The 3 first commits of the series are cleanup steps:
migration to Kconfig and rename files and function to fdt_simplefb_
(it seems like a good time time as this function is only used today
 in RPI boards)

patch 4 is a preliminary step = add video_is_active function

patch 5 add a new API fdt_simplefb_enable_and_mem_rsv
to activate node and add reserved memory for video memory

patch 6 avoid a issue in kernel when the reserved video memory by
LTDC driver is not aligned with Linux kernel MMU_SECTION_SIZE

patch 7 use this new function in stm32mp1 code for STMicroelectronics
boards when the simple-framebuffer node is present in Linux device tree



Patrick Delaunay (7):
  Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig
  common: rename lcd_simplefb.c file to fdt_simplefb.c
  common: rename functions lcd_dt_simplefb to fdt_simplefb
  video: Add video_is_active function
  common: add fdt_simplefb_enable_and_mem_rsv function
  video: stm32: stm32_ltdc: align framebuffer on 2MB
  board: stm32mp1: enable simple framebuffer node for splashscreen

 board/raspberrypi/rpi/rpi.c               |  2 +-
 board/st/stm32mp1/stm32mp1.c              |  4 +++
 common/Kconfig                            |  9 ++++++
 common/Makefile                           |  2 +-
 common/{lcd_simplefb.c => fdt_simplefb.c} | 37 ++++++++++++++++++++---
 configs/rpi_0_w_defconfig                 |  1 +
 configs/rpi_2_defconfig                   |  1 +
 configs/rpi_3_32b_defconfig               |  1 +
 configs/rpi_3_b_plus_defconfig            |  1 +
 configs/rpi_3_defconfig                   |  1 +
 configs/rpi_4_32b_defconfig               |  1 +
 configs/rpi_4_defconfig                   |  1 +
 configs/rpi_arm64_defconfig               |  1 +
 configs/rpi_defconfig                     |  1 +
 configs/stm32mp15_basic_defconfig         |  1 +
 configs/stm32mp15_defconfig               |  1 +
 configs/stm32mp15_trusted_defconfig       |  1 +
 drivers/video/stm32/stm32_ltdc.c          |  5 ++-
 drivers/video/video-uclass.c              | 14 +++++++++
 include/configs/rpi.h                     |  1 -
 include/fdt_simplefb.h                    |  5 +--
 include/video.h                           |  7 +++++
 scripts/config_whitelist.txt              |  1 -
 23 files changed, 87 insertions(+), 12 deletions(-)
 rename common/{lcd_simplefb.c => fdt_simplefb.c} (65%)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-15 15:46   ` Matthias Brugger
  2021-11-15 15:32 ` [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c Patrick Delaunay
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Alexandru Gagniuc,
	Anatolij Gustschin, Artem Lapkin, Asherah Connor,
	Heinrich Schuchardt, Igor Opaniuk, Joel Peshkin,
	Jorge Ramirez-Ortiz, Marek Behún, Matthias Brugger,
	Michal Simek, Ovidiu Panait, Peng Fan, Priyanka Jain,
	Simon Glass, Stefan Roese, Thomas Huth, U-Boot STM32

This converts the following to Kconfig:
   CONFIG_LCD_DT_SIMPLEFB

This patch also renames this config to CONFIG_FDT_SIMPLEFB as the code in
common/lcd_simplefb.c support CONFIG_LCD and CONFIG_VIDEO.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 common/Kconfig                 | 9 +++++++++
 common/Makefile                | 2 +-
 configs/rpi_0_w_defconfig      | 1 +
 configs/rpi_2_defconfig        | 1 +
 configs/rpi_3_32b_defconfig    | 1 +
 configs/rpi_3_b_plus_defconfig | 1 +
 configs/rpi_3_defconfig        | 1 +
 configs/rpi_4_32b_defconfig    | 1 +
 configs/rpi_4_defconfig        | 1 +
 configs/rpi_arm64_defconfig    | 1 +
 configs/rpi_defconfig          | 1 +
 include/configs/rpi.h          | 1 -
 scripts/config_whitelist.txt   | 1 -
 13 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/common/Kconfig b/common/Kconfig
index fdcf4536d0..c97814c6ad 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -766,3 +766,12 @@ config SPL_IMAGE_SIGN_INFO
 	  Enable image_sign_info helper functions in SPL.
 
 endif
+
+config FDT_SIMPLEFB
+	bool "FDT tools for simplefb support"
+	depends on OF_LIBFDT
+	help
+	  Enable the fdt tools to manage the simple fb nodes in device tree.
+	  These functions can be used by board to indicate to the OS
+	  the presence of the simple frame buffer with associated reserved
+	  memory
diff --git a/common/Makefile b/common/Makefile
index c500bcd7d8..fed7e482e6 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -40,7 +40,7 @@ ifndef CONFIG_DM_VIDEO
 obj-$(CONFIG_LCD) += lcd.o lcd_console.o
 endif
 obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o
-obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
+obj-$(CONFIG_FDT_SIMPLEFB) += lcd_simplefb.o
 obj-$(CONFIG_MENU) += menu.o
 obj-$(CONFIG_UPDATE_COMMON) += update.o
 obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
index 6d76d12910..195541c6e7 100644
--- a/configs/rpi_0_w_defconfig
+++ b/configs/rpi_0_w_defconfig
@@ -13,6 +13,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
index 1931607132..eb63fbdd8d 100644
--- a/configs/rpi_2_defconfig
+++ b/configs/rpi_2_defconfig
@@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
index 060fd36da5..46102899f0 100644
--- a/configs/rpi_3_32b_defconfig
+++ b/configs/rpi_3_32b_defconfig
@@ -15,6 +15,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_3_b_plus_defconfig b/configs/rpi_3_b_plus_defconfig
index 0a69f97342..91b63b6272 100644
--- a/configs/rpi_3_b_plus_defconfig
+++ b/configs/rpi_3_b_plus_defconfig
@@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
index 8016fe1d55..528b12ea5b 100644
--- a/configs/rpi_3_defconfig
+++ b/configs/rpi_3_defconfig
@@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
index 990589de64..88f7504a60 100644
--- a/configs/rpi_4_32b_defconfig
+++ b/configs/rpi_4_32b_defconfig
@@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
index 0720505c6a..59a7103154 100644
--- a/configs/rpi_4_defconfig
+++ b/configs/rpi_4_defconfig
@@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig
index 06ae3e93b2..67dbf094ef 100644
--- a/configs/rpi_arm64_defconfig
+++ b/configs/rpi_arm64_defconfig
@@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
index 8acf04d0e4..0baef3b6ab 100644
--- a/configs/rpi_defconfig
+++ b/configs/rpi_defconfig
@@ -13,6 +13,7 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_MISC_INIT_R=y
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="U-Boot> "
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index 55768a46da..bc907acd5f 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -44,7 +44,6 @@
 /* GPIO */
 #define CONFIG_BCM2835_GPIO
 /* LCD */
-#define CONFIG_LCD_DT_SIMPLEFB
 #define CONFIG_VIDEO_BCM2835
 
 /* DFU over USB/UDC */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index b9c1c61e13..1e1ef76175 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -699,7 +699,6 @@ CONFIG_LBA48
 CONFIG_LBDAF
 CONFIG_LCD_ALIGNMENT
 CONFIG_LCD_BMP_RLE8
-CONFIG_LCD_DT_SIMPLEFB
 CONFIG_LCD_INFO
 CONFIG_LCD_INFO_BELOW_LOGO
 CONFIG_LCD_IN_PSRAM
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
  2021-11-15 15:32 ` [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-22  7:30   ` [Uboot-stm32] " Patrice CHOTARD
  2021-11-15 15:32 ` [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb Patrick Delaunay
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Alexandru Gagniuc,
	Anatolij Gustschin, Asherah Connor, Bin Meng,
	Heinrich Schuchardt, Joel Peshkin, Jorge Ramirez-Ortiz, Peng Fan,
	Simon Glass, U-Boot STM32

Rename the file lcd_simplefb.c to fdt_simplefb.c to be aligned
with the configuration name and with the associated include file
./include/fdt_simplefb.h

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 common/Makefile                           | 2 +-
 common/{lcd_simplefb.c => fdt_simplefb.c} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename common/{lcd_simplefb.c => fdt_simplefb.c} (100%)

diff --git a/common/Makefile b/common/Makefile
index fed7e482e6..24be05c368 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -18,6 +18,7 @@ obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o
 obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
 
 obj-$(CONFIG_CMD_BEDBUG) += bedbug.o
+obj-$(CONFIG_FDT_SIMPLEFB) += fdt_simplefb.o
 obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
 obj-$(CONFIG_MII) += miiphyutil.o
 obj-$(CONFIG_CMD_MII) += miiphyutil.o
@@ -40,7 +41,6 @@ ifndef CONFIG_DM_VIDEO
 obj-$(CONFIG_LCD) += lcd.o lcd_console.o
 endif
 obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o
-obj-$(CONFIG_FDT_SIMPLEFB) += lcd_simplefb.o
 obj-$(CONFIG_MENU) += menu.o
 obj-$(CONFIG_UPDATE_COMMON) += update.o
 obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
diff --git a/common/lcd_simplefb.c b/common/fdt_simplefb.c
similarity index 100%
rename from common/lcd_simplefb.c
rename to common/fdt_simplefb.c
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
  2021-11-15 15:32 ` [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig Patrick Delaunay
  2021-11-15 15:32 ` [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-15 15:47   ` Matthias Brugger
  2021-11-15 15:32 ` [PATCH 4/7] video: Add video_is_active function Patrick Delaunay
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Matthias Brugger, Simon Glass,
	U-Boot STM32

Rename the function named lcd_dt_simplefb* to fdt_simplefb* to be aligned
with the associated file name fdt_simplefb.h/fdt_simplefb.c

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 board/raspberrypi/rpi/rpi.c |  2 +-
 common/fdt_simplefb.c       | 10 +++++-----
 include/fdt_simplefb.h      |  4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index 55afaa54d9..cd7d6df2a5 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -505,7 +505,7 @@ int ft_board_setup(void *blob, struct bd_info *bd)
 
 	node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
 	if (node < 0)
-		lcd_dt_simplefb_add_node(blob);
+		fdt_simplefb_add_node(blob);
 
 #ifdef CONFIG_EFI_LOADER
 	/* Reserve the spin table */
diff --git a/common/fdt_simplefb.c b/common/fdt_simplefb.c
index 1650615cdb..32173030ab 100644
--- a/common/fdt_simplefb.c
+++ b/common/fdt_simplefb.c
@@ -16,7 +16,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static int lcd_dt_simplefb_configure_node(void *blob, int off)
+static int fdt_simplefb_configure_node(void *blob, int off)
 {
 	int xsize, ysize;
 	int bpix; /* log2 of bits per pixel */
@@ -58,7 +58,7 @@ static int lcd_dt_simplefb_configure_node(void *blob, int off)
 				       xsize * (1 << bpix) / 8, name);
 }
 
-int lcd_dt_simplefb_add_node(void *blob)
+int fdt_simplefb_add_node(void *blob)
 {
 	static const char compat[] = "simple-framebuffer";
 	static const char disabled[] = "disabled";
@@ -76,10 +76,10 @@ int lcd_dt_simplefb_add_node(void *blob)
 	if (ret < 0)
 		return -1;
 
-	return lcd_dt_simplefb_configure_node(blob, off);
+	return fdt_simplefb_configure_node(blob, off);
 }
 
-int lcd_dt_simplefb_enable_existing_node(void *blob)
+int fdt_simplefb_enable_existing_node(void *blob)
 {
 	int off;
 
@@ -87,5 +87,5 @@ int lcd_dt_simplefb_enable_existing_node(void *blob)
 	if (off < 0)
 		return -1;
 
-	return lcd_dt_simplefb_configure_node(blob, off);
+	return fdt_simplefb_configure_node(blob, off);
 }
diff --git a/include/fdt_simplefb.h b/include/fdt_simplefb.h
index 7cc305e1fd..7e54723591 100644
--- a/include/fdt_simplefb.h
+++ b/include/fdt_simplefb.h
@@ -8,6 +8,6 @@
 
 #ifndef _FDT_SIMPLEFB_H_
 #define _FDT_SIMPLEFB_H_
-int lcd_dt_simplefb_add_node(void *blob);
-int lcd_dt_simplefb_enable_existing_node(void *blob);
+int fdt_simplefb_add_node(void *blob);
+int fdt_simplefb_enable_existing_node(void *blob);
 #endif
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/7] video: Add video_is_active function
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
                   ` (2 preceding siblings ...)
  2021-11-15 15:32 ` [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-22  7:31   ` [Uboot-stm32] " Patrice CHOTARD
  2021-11-15 15:32 ` [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function Patrick Delaunay
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Anatolij Gustschin,
	Yannick Fertré,
	U-Boot STM32

Add the helper function video_is_active() to test if one video device
is active.

This function can be used in board code to execute operation
only when the display is probed / really used.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 drivers/video/video-uclass.c | 14 ++++++++++++++
 include/video.h              |  7 +++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 9f8cf6ef2a..43ebb3c565 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -228,6 +228,20 @@ void video_sync_all(void)
 	}
 }
 
+bool video_is_active(void)
+{
+	struct udevice *dev;
+
+	for (uclass_find_first_device(UCLASS_VIDEO, &dev);
+	     dev;
+	     uclass_find_next_device(&dev)) {
+		if (device_active(dev))
+			return true;
+	}
+
+	return false;
+}
+
 int video_get_xsize(struct udevice *dev)
 {
 	struct video_priv *priv = dev_get_uclass_priv(dev);
diff --git a/include/video.h b/include/video.h
index f14fb15f84..5ac1387a39 100644
--- a/include/video.h
+++ b/include/video.h
@@ -276,6 +276,13 @@ static inline int video_sync_copy_all(struct udevice *dev)
 
 #endif
 
+/**
+ * video_is_active() - Test if one video device it active
+ *
+ * @return true if at least one video device is active, else false.
+ */
+bool video_is_active(void);
+
 #ifndef CONFIG_DM_VIDEO
 
 /* Video functions */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
                   ` (3 preceding siblings ...)
  2021-11-15 15:32 ` [PATCH 4/7] video: Add video_is_active function Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-22  7:33   ` [Uboot-stm32] " Patrice CHOTARD
  2021-11-15 15:32 ` [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB Patrick Delaunay
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Patrick Delaunay, Simon Glass, U-Boot STM32

Add a new function to activate an existing simple frame buffer node
and add the associated reserved memory, with no-map properties.

This device tree update is only done when the video device is active
and the video buffer is used.

This patch uses '#if CONFIG_IS_ENABLED(DM_VIDEO)' because
gd->video_bottom and gd->video_top are only defined when CONFIG_DM_VIDEO
is activated.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 common/fdt_simplefb.c  | 27 +++++++++++++++++++++++++++
 include/fdt_simplefb.h |  1 +
 2 files changed, 28 insertions(+)

diff --git a/common/fdt_simplefb.c b/common/fdt_simplefb.c
index 32173030ab..c52846f4bc 100644
--- a/common/fdt_simplefb.c
+++ b/common/fdt_simplefb.c
@@ -89,3 +89,30 @@ int fdt_simplefb_enable_existing_node(void *blob)
 
 	return fdt_simplefb_configure_node(blob, off);
 }
+
+#if CONFIG_IS_ENABLED(DM_VIDEO)
+int fdt_simplefb_enable_and_mem_rsv(void *blob)
+{
+	struct fdt_memory mem;
+	int ret;
+
+	/* nothing to do when video is not active */
+	if (!video_is_active())
+		return 0;
+
+	ret = fdt_simplefb_enable_existing_node(blob);
+	if (ret)
+		return ret;
+
+	/* nothing to do when the frame buffer is not defined */
+	if (gd->video_bottom == gd->video_top)
+		return 0;
+
+	/* reserved with no-map tag the video buffer */
+	mem.start = gd->video_bottom;
+	mem.end = gd->video_top - 1;
+
+	return fdtdec_add_reserved_memory(blob, "framebuffer", &mem, NULL, 0, NULL,
+					  FDTDEC_RESERVED_MEMORY_NO_MAP);
+}
+#endif
diff --git a/include/fdt_simplefb.h b/include/fdt_simplefb.h
index 7e54723591..41cd740ac0 100644
--- a/include/fdt_simplefb.h
+++ b/include/fdt_simplefb.h
@@ -10,4 +10,5 @@
 #define _FDT_SIMPLEFB_H_
 int fdt_simplefb_add_node(void *blob);
 int fdt_simplefb_enable_existing_node(void *blob);
+int fdt_simplefb_enable_and_mem_rsv(void *blob);
 #endif
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
                   ` (4 preceding siblings ...)
  2021-11-15 15:32 ` [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-22  7:34   ` Patrice CHOTARD
  2021-11-15 15:32 ` [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
  2021-11-30 13:31 ` [PATCH 0/7] " Patrice CHOTARD
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Patrick Delaunay, Anatolij Gustschin,
	Patrice Chotard, U-Boot STM32, Yannick Fertré

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>
---

 drivers/video/stm32/stm32_ltdc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/video/stm32/stm32_ltdc.c b/drivers/video/stm32/stm32_ltdc.c
index 65c882d9f1..87e5fd54d9 100644
--- a/drivers/video/stm32/stm32_ltdc.c
+++ b/drivers/video/stm32/stm32_ltdc.c
@@ -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;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
                   ` (5 preceding siblings ...)
  2021-11-15 15:32 ` [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB Patrick Delaunay
@ 2021-11-15 15:32 ` Patrick Delaunay
  2021-11-22  7:37   ` Patrice CHOTARD
  2021-11-30 13:31 ` [PATCH 0/7] " Patrice CHOTARD
  7 siblings, 1 reply; 16+ messages in thread
From: Patrick Delaunay @ 2021-11-15 15:32 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Patrick Delaunay, Patrice Chotard, U-Boot STM32

Enable an existing simple framebuffer node in the Linux kernel device
tree and the add the associated reserved memory node to preserved the
resources (clock, memory) used by the stm32 video driver to display
the splashscreen = background in exlinux.conf file.

These resources will be released by the Linux driver only when the
associated driver is ready to avoid transition issues during the Linux
kernel initialization between U-Boot splash screen and the final display.

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

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

 board/st/stm32mp1/stm32mp1.c        | 4 ++++
 configs/stm32mp15_basic_defconfig   | 1 +
 configs/stm32mp15_defconfig         | 1 +
 configs/stm32mp15_trusted_defconfig | 1 +
 4 files changed, 7 insertions(+)

diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
index 84592677e4..45f2ca81a6 100644
--- a/board/st/stm32mp1/stm32mp1.c
+++ b/board/st/stm32mp1/stm32mp1.c
@@ -13,6 +13,7 @@
 #include <dm.h>
 #include <env.h>
 #include <env_internal.h>
+#include <fdt_simplefb.h>
 #include <fdt_support.h>
 #include <g_dnl.h>
 #include <generic-phy.h>
@@ -914,6 +915,9 @@ int ft_board_setup(void *blob, struct bd_info *bd)
 		if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS))
 			fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
 
+	if (CONFIG_IS_ENABLED(FDT_SIMPLEFB))
+		fdt_simplefb_enable_and_mem_rsv(blob);
+
 	return 0;
 }
 #endif
diff --git a/configs/stm32mp15_basic_defconfig b/configs/stm32mp15_basic_defconfig
index 2cc26d4066..c9ed2239ca 100644
--- a/configs/stm32mp15_basic_defconfig
+++ b/configs/stm32mp15_basic_defconfig
@@ -34,6 +34,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPL_POWER=y
 CONFIG_SPL_SPI_FLASH_MTD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="STM32MP> "
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ERASEENV=y
diff --git a/configs/stm32mp15_defconfig b/configs/stm32mp15_defconfig
index 4c6a52fc54..e10f4cedc8 100644
--- a/configs/stm32mp15_defconfig
+++ b/configs/stm32mp15_defconfig
@@ -19,6 +19,7 @@ CONFIG_SYS_LOAD_ADDR=0xc2000000
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=1
 CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="STM32MP> "
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ERASEENV=y
diff --git a/configs/stm32mp15_trusted_defconfig b/configs/stm32mp15_trusted_defconfig
index feca26e973..83bd93e3a1 100644
--- a/configs/stm32mp15_trusted_defconfig
+++ b/configs/stm32mp15_trusted_defconfig
@@ -20,6 +20,7 @@ CONFIG_SYS_LOAD_ADDR=0xc2000000
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=1
 CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
+CONFIG_FDT_SIMPLEFB=y
 CONFIG_SYS_PROMPT="STM32MP> "
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ERASEENV=y
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig
  2021-11-15 15:32 ` [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig Patrick Delaunay
@ 2021-11-15 15:46   ` Matthias Brugger
  0 siblings, 0 replies; 16+ messages in thread
From: Matthias Brugger @ 2021-11-15 15:46 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Alexandru Gagniuc, Anatolij Gustschin, Artem Lapkin,
	Asherah Connor, Heinrich Schuchardt, Igor Opaniuk, Joel Peshkin,
	Jorge Ramirez-Ortiz, Marek Behún, Michal Simek,
	Ovidiu Panait, Peng Fan, Priyanka Jain, Simon Glass,
	Stefan Roese, Thomas Huth, U-Boot STM32



On 15/11/2021 16:32, Patrick Delaunay wrote:
> This converts the following to Kconfig:
>     CONFIG_LCD_DT_SIMPLEFB
> 
> This patch also renames this config to CONFIG_FDT_SIMPLEFB as the code in
> common/lcd_simplefb.c support CONFIG_LCD and CONFIG_VIDEO.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Reviewed-by: Matthias Brugger <mbrugger@suse.com>

> ---
> 
>   common/Kconfig                 | 9 +++++++++
>   common/Makefile                | 2 +-
>   configs/rpi_0_w_defconfig      | 1 +
>   configs/rpi_2_defconfig        | 1 +
>   configs/rpi_3_32b_defconfig    | 1 +
>   configs/rpi_3_b_plus_defconfig | 1 +
>   configs/rpi_3_defconfig        | 1 +
>   configs/rpi_4_32b_defconfig    | 1 +
>   configs/rpi_4_defconfig        | 1 +
>   configs/rpi_arm64_defconfig    | 1 +
>   configs/rpi_defconfig          | 1 +
>   include/configs/rpi.h          | 1 -
>   scripts/config_whitelist.txt   | 1 -
>   13 files changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/common/Kconfig b/common/Kconfig
> index fdcf4536d0..c97814c6ad 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -766,3 +766,12 @@ config SPL_IMAGE_SIGN_INFO
>   	  Enable image_sign_info helper functions in SPL.
>   
>   endif
> +
> +config FDT_SIMPLEFB
> +	bool "FDT tools for simplefb support"
> +	depends on OF_LIBFDT
> +	help
> +	  Enable the fdt tools to manage the simple fb nodes in device tree.
> +	  These functions can be used by board to indicate to the OS
> +	  the presence of the simple frame buffer with associated reserved
> +	  memory
> diff --git a/common/Makefile b/common/Makefile
> index c500bcd7d8..fed7e482e6 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -40,7 +40,7 @@ ifndef CONFIG_DM_VIDEO
>   obj-$(CONFIG_LCD) += lcd.o lcd_console.o
>   endif
>   obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o
> -obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
> +obj-$(CONFIG_FDT_SIMPLEFB) += lcd_simplefb.o
>   obj-$(CONFIG_MENU) += menu.o
>   obj-$(CONFIG_UPDATE_COMMON) += update.o
>   obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
> diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
> index 6d76d12910..195541c6e7 100644
> --- a/configs/rpi_0_w_defconfig
> +++ b/configs/rpi_0_w_defconfig
> @@ -13,6 +13,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
> index 1931607132..eb63fbdd8d 100644
> --- a/configs/rpi_2_defconfig
> +++ b/configs/rpi_2_defconfig
> @@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
> index 060fd36da5..46102899f0 100644
> --- a/configs/rpi_3_32b_defconfig
> +++ b/configs/rpi_3_32b_defconfig
> @@ -15,6 +15,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_3_b_plus_defconfig b/configs/rpi_3_b_plus_defconfig
> index 0a69f97342..91b63b6272 100644
> --- a/configs/rpi_3_b_plus_defconfig
> +++ b/configs/rpi_3_b_plus_defconfig
> @@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
> index 8016fe1d55..528b12ea5b 100644
> --- a/configs/rpi_3_defconfig
> +++ b/configs/rpi_3_defconfig
> @@ -14,6 +14,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
> index 990589de64..88f7504a60 100644
> --- a/configs/rpi_4_32b_defconfig
> +++ b/configs/rpi_4_32b_defconfig
> @@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_DFU=y
>   CONFIG_CMD_GPIO=y
> diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
> index 0720505c6a..59a7103154 100644
> --- a/configs/rpi_4_defconfig
> +++ b/configs/rpi_4_defconfig
> @@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_DFU=y
>   CONFIG_CMD_GPIO=y
> diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig
> index 06ae3e93b2..67dbf094ef 100644
> --- a/configs/rpi_arm64_defconfig
> +++ b/configs/rpi_arm64_defconfig
> @@ -12,6 +12,7 @@ CONFIG_PREBOOT="pci enum; usb start;"
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
> index 8acf04d0e4..0baef3b6ab 100644
> --- a/configs/rpi_defconfig
> +++ b/configs/rpi_defconfig
> @@ -13,6 +13,7 @@ CONFIG_USE_PREBOOT=y
>   # CONFIG_DISPLAY_CPUINFO is not set
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_MISC_INIT_R=y
> +CONFIG_FDT_SIMPLEFB=y
>   CONFIG_SYS_PROMPT="U-Boot> "
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_MMC=y
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index 55768a46da..bc907acd5f 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -44,7 +44,6 @@
>   /* GPIO */
>   #define CONFIG_BCM2835_GPIO
>   /* LCD */
> -#define CONFIG_LCD_DT_SIMPLEFB
>   #define CONFIG_VIDEO_BCM2835
>   
>   /* DFU over USB/UDC */
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index b9c1c61e13..1e1ef76175 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -699,7 +699,6 @@ CONFIG_LBA48
>   CONFIG_LBDAF
>   CONFIG_LCD_ALIGNMENT
>   CONFIG_LCD_BMP_RLE8
> -CONFIG_LCD_DT_SIMPLEFB
>   CONFIG_LCD_INFO
>   CONFIG_LCD_INFO_BELOW_LOGO
>   CONFIG_LCD_IN_PSRAM
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb
  2021-11-15 15:32 ` [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb Patrick Delaunay
@ 2021-11-15 15:47   ` Matthias Brugger
  0 siblings, 0 replies; 16+ messages in thread
From: Matthias Brugger @ 2021-11-15 15:47 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot; +Cc: Marek Vasut, Simon Glass, U-Boot STM32



On 15/11/2021 16:32, Patrick Delaunay wrote:
> Rename the function named lcd_dt_simplefb* to fdt_simplefb* to be aligned
> with the associated file name fdt_simplefb.h/fdt_simplefb.c
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Reviewed-by: Matthias Brugger <mbrugger@suse.com>

> ---
> 
>   board/raspberrypi/rpi/rpi.c |  2 +-
>   common/fdt_simplefb.c       | 10 +++++-----
>   include/fdt_simplefb.h      |  4 ++--
>   3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
> index 55afaa54d9..cd7d6df2a5 100644
> --- a/board/raspberrypi/rpi/rpi.c
> +++ b/board/raspberrypi/rpi/rpi.c
> @@ -505,7 +505,7 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>   
>   	node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
>   	if (node < 0)
> -		lcd_dt_simplefb_add_node(blob);
> +		fdt_simplefb_add_node(blob);
>   
>   #ifdef CONFIG_EFI_LOADER
>   	/* Reserve the spin table */
> diff --git a/common/fdt_simplefb.c b/common/fdt_simplefb.c
> index 1650615cdb..32173030ab 100644
> --- a/common/fdt_simplefb.c
> +++ b/common/fdt_simplefb.c
> @@ -16,7 +16,7 @@
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> -static int lcd_dt_simplefb_configure_node(void *blob, int off)
> +static int fdt_simplefb_configure_node(void *blob, int off)
>   {
>   	int xsize, ysize;
>   	int bpix; /* log2 of bits per pixel */
> @@ -58,7 +58,7 @@ static int lcd_dt_simplefb_configure_node(void *blob, int off)
>   				       xsize * (1 << bpix) / 8, name);
>   }
>   
> -int lcd_dt_simplefb_add_node(void *blob)
> +int fdt_simplefb_add_node(void *blob)
>   {
>   	static const char compat[] = "simple-framebuffer";
>   	static const char disabled[] = "disabled";
> @@ -76,10 +76,10 @@ int lcd_dt_simplefb_add_node(void *blob)
>   	if (ret < 0)
>   		return -1;
>   
> -	return lcd_dt_simplefb_configure_node(blob, off);
> +	return fdt_simplefb_configure_node(blob, off);
>   }
>   
> -int lcd_dt_simplefb_enable_existing_node(void *blob)
> +int fdt_simplefb_enable_existing_node(void *blob)
>   {
>   	int off;
>   
> @@ -87,5 +87,5 @@ int lcd_dt_simplefb_enable_existing_node(void *blob)
>   	if (off < 0)
>   		return -1;
>   
> -	return lcd_dt_simplefb_configure_node(blob, off);
> +	return fdt_simplefb_configure_node(blob, off);
>   }
> diff --git a/include/fdt_simplefb.h b/include/fdt_simplefb.h
> index 7cc305e1fd..7e54723591 100644
> --- a/include/fdt_simplefb.h
> +++ b/include/fdt_simplefb.h
> @@ -8,6 +8,6 @@
>   
>   #ifndef _FDT_SIMPLEFB_H_
>   #define _FDT_SIMPLEFB_H_
> -int lcd_dt_simplefb_add_node(void *blob);
> -int lcd_dt_simplefb_enable_existing_node(void *blob);
> +int fdt_simplefb_add_node(void *blob);
> +int fdt_simplefb_enable_existing_node(void *blob);
>   #endif
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Uboot-stm32] [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c
  2021-11-15 15:32 ` [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c Patrick Delaunay
@ 2021-11-22  7:30   ` Patrice CHOTARD
  0 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-22  7:30 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Peng Fan, Bin Meng, Joel Peshkin,
	Heinrich Schuchardt, Simon Glass, Asherah Connor, U-Boot STM32,
	Alexandru Gagniuc, Jorge Ramirez-Ortiz, Anatolij Gustschin

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> Rename the file lcd_simplefb.c to fdt_simplefb.c to be aligned
> with the configuration name and with the associated include file
> ./include/fdt_simplefb.h
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
> 
>  common/Makefile                           | 2 +-
>  common/{lcd_simplefb.c => fdt_simplefb.c} | 0
>  2 files changed, 1 insertion(+), 1 deletion(-)
>  rename common/{lcd_simplefb.c => fdt_simplefb.c} (100%)
> 
> diff --git a/common/Makefile b/common/Makefile
> index fed7e482e6..24be05c368 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -18,6 +18,7 @@ obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o
>  obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
>  
>  obj-$(CONFIG_CMD_BEDBUG) += bedbug.o
> +obj-$(CONFIG_FDT_SIMPLEFB) += fdt_simplefb.o
>  obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
>  obj-$(CONFIG_MII) += miiphyutil.o
>  obj-$(CONFIG_CMD_MII) += miiphyutil.o
> @@ -40,7 +41,6 @@ ifndef CONFIG_DM_VIDEO
>  obj-$(CONFIG_LCD) += lcd.o lcd_console.o
>  endif
>  obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o
> -obj-$(CONFIG_FDT_SIMPLEFB) += lcd_simplefb.o
>  obj-$(CONFIG_MENU) += menu.o
>  obj-$(CONFIG_UPDATE_COMMON) += update.o
>  obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
> diff --git a/common/lcd_simplefb.c b/common/fdt_simplefb.c
> similarity index 100%
> rename from common/lcd_simplefb.c
> rename to common/fdt_simplefb.c
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Uboot-stm32] [PATCH 4/7] video: Add video_is_active function
  2021-11-15 15:32 ` [PATCH 4/7] video: Add video_is_active function Patrick Delaunay
@ 2021-11-22  7:31   ` Patrice CHOTARD
  0 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-22  7:31 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Yannick Fertré, Anatolij Gustschin, U-Boot STM32

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> Add the helper function video_is_active() to test if one video device
> is active.
> 
> This function can be used in board code to execute operation
> only when the display is probed / really used.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
> 
>  drivers/video/video-uclass.c | 14 ++++++++++++++
>  include/video.h              |  7 +++++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
> index 9f8cf6ef2a..43ebb3c565 100644
> --- a/drivers/video/video-uclass.c
> +++ b/drivers/video/video-uclass.c
> @@ -228,6 +228,20 @@ void video_sync_all(void)
>  	}
>  }
>  
> +bool video_is_active(void)
> +{
> +	struct udevice *dev;
> +
> +	for (uclass_find_first_device(UCLASS_VIDEO, &dev);
> +	     dev;
> +	     uclass_find_next_device(&dev)) {
> +		if (device_active(dev))
> +			return true;
> +	}
> +
> +	return false;
> +}
> +
>  int video_get_xsize(struct udevice *dev)
>  {
>  	struct video_priv *priv = dev_get_uclass_priv(dev);
> diff --git a/include/video.h b/include/video.h
> index f14fb15f84..5ac1387a39 100644
> --- a/include/video.h
> +++ b/include/video.h
> @@ -276,6 +276,13 @@ static inline int video_sync_copy_all(struct udevice *dev)
>  
>  #endif
>  
> +/**
> + * video_is_active() - Test if one video device it active
> + *
> + * @return true if at least one video device is active, else false.
> + */
> +bool video_is_active(void);
> +
>  #ifndef CONFIG_DM_VIDEO
>  
>  /* Video functions */
> 

Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Uboot-stm32] [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function
  2021-11-15 15:32 ` [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function Patrick Delaunay
@ 2021-11-22  7:33   ` Patrice CHOTARD
  0 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-22  7:33 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot; +Cc: Marek Vasut, Simon Glass, U-Boot STM32

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> Add a new function to activate an existing simple frame buffer node
> and add the associated reserved memory, with no-map properties.
> 
> This device tree update is only done when the video device is active
> and the video buffer is used.
> 
> This patch uses '#if CONFIG_IS_ENABLED(DM_VIDEO)' because
> gd->video_bottom and gd->video_top are only defined when CONFIG_DM_VIDEO
> is activated.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
> 
>  common/fdt_simplefb.c  | 27 +++++++++++++++++++++++++++
>  include/fdt_simplefb.h |  1 +
>  2 files changed, 28 insertions(+)
> 
> diff --git a/common/fdt_simplefb.c b/common/fdt_simplefb.c
> index 32173030ab..c52846f4bc 100644
> --- a/common/fdt_simplefb.c
> +++ b/common/fdt_simplefb.c
> @@ -89,3 +89,30 @@ int fdt_simplefb_enable_existing_node(void *blob)
>  
>  	return fdt_simplefb_configure_node(blob, off);
>  }
> +
> +#if CONFIG_IS_ENABLED(DM_VIDEO)
> +int fdt_simplefb_enable_and_mem_rsv(void *blob)
> +{
> +	struct fdt_memory mem;
> +	int ret;
> +
> +	/* nothing to do when video is not active */
> +	if (!video_is_active())
> +		return 0;
> +
> +	ret = fdt_simplefb_enable_existing_node(blob);
> +	if (ret)
> +		return ret;
> +
> +	/* nothing to do when the frame buffer is not defined */
> +	if (gd->video_bottom == gd->video_top)
> +		return 0;
> +
> +	/* reserved with no-map tag the video buffer */
> +	mem.start = gd->video_bottom;
> +	mem.end = gd->video_top - 1;
> +
> +	return fdtdec_add_reserved_memory(blob, "framebuffer", &mem, NULL, 0, NULL,
> +					  FDTDEC_RESERVED_MEMORY_NO_MAP);
> +}
> +#endif
> diff --git a/include/fdt_simplefb.h b/include/fdt_simplefb.h
> index 7e54723591..41cd740ac0 100644
> --- a/include/fdt_simplefb.h
> +++ b/include/fdt_simplefb.h
> @@ -10,4 +10,5 @@
>  #define _FDT_SIMPLEFB_H_
>  int fdt_simplefb_add_node(void *blob);
>  int fdt_simplefb_enable_existing_node(void *blob);
> +int fdt_simplefb_enable_and_mem_rsv(void *blob);
>  #endif
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB
  2021-11-15 15:32 ` [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB Patrick Delaunay
@ 2021-11-22  7:34   ` Patrice CHOTARD
  0 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-22  7:34 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Anatolij Gustschin, U-Boot STM32, Yannick Fertré

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> 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>
> ---
> 
>  drivers/video/stm32/stm32_ltdc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/video/stm32/stm32_ltdc.c b/drivers/video/stm32/stm32_ltdc.c
> index 65c882d9f1..87e5fd54d9 100644
> --- a/drivers/video/stm32/stm32_ltdc.c
> +++ b/drivers/video/stm32/stm32_ltdc.c
> @@ -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;
>  }
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen
  2021-11-15 15:32 ` [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
@ 2021-11-22  7:37   ` Patrice CHOTARD
  0 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-22  7:37 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot; +Cc: Marek Vasut, U-Boot STM32

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> Enable an existing simple framebuffer node in the Linux kernel device
> tree and the add the associated reserved memory node to preserved the
> resources (clock, memory) used by the stm32 video driver to display
> the splashscreen = background in exlinux.conf file.
> 
> These resources will be released by the Linux driver only when the
> associated driver is ready to avoid transition issues during the Linux
> kernel initialization between U-Boot splash screen and the final display.
> 
> See Linux documentation for details:
> Documentation/devicetree/bindings/display/simple-framebuffer.yaml
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
> 
>  board/st/stm32mp1/stm32mp1.c        | 4 ++++
>  configs/stm32mp15_basic_defconfig   | 1 +
>  configs/stm32mp15_defconfig         | 1 +
>  configs/stm32mp15_trusted_defconfig | 1 +
>  4 files changed, 7 insertions(+)
> 
> diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
> index 84592677e4..45f2ca81a6 100644
> --- a/board/st/stm32mp1/stm32mp1.c
> +++ b/board/st/stm32mp1/stm32mp1.c
> @@ -13,6 +13,7 @@
>  #include <dm.h>
>  #include <env.h>
>  #include <env_internal.h>
> +#include <fdt_simplefb.h>
>  #include <fdt_support.h>
>  #include <g_dnl.h>
>  #include <generic-phy.h>
> @@ -914,6 +915,9 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>  		if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS))
>  			fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
>  
> +	if (CONFIG_IS_ENABLED(FDT_SIMPLEFB))
> +		fdt_simplefb_enable_and_mem_rsv(blob);
> +
>  	return 0;
>  }
>  #endif
> diff --git a/configs/stm32mp15_basic_defconfig b/configs/stm32mp15_basic_defconfig
> index 2cc26d4066..c9ed2239ca 100644
> --- a/configs/stm32mp15_basic_defconfig
> +++ b/configs/stm32mp15_basic_defconfig
> @@ -34,6 +34,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
>  CONFIG_SPL_POWER=y
>  CONFIG_SPL_SPI_FLASH_MTD=y
>  CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
> +CONFIG_FDT_SIMPLEFB=y
>  CONFIG_SYS_PROMPT="STM32MP> "
>  CONFIG_CMD_ADTIMG=y
>  CONFIG_CMD_ERASEENV=y
> diff --git a/configs/stm32mp15_defconfig b/configs/stm32mp15_defconfig
> index 4c6a52fc54..e10f4cedc8 100644
> --- a/configs/stm32mp15_defconfig
> +++ b/configs/stm32mp15_defconfig
> @@ -19,6 +19,7 @@ CONFIG_SYS_LOAD_ADDR=0xc2000000
>  CONFIG_FIT=y
>  CONFIG_BOOTDELAY=1
>  CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
> +CONFIG_FDT_SIMPLEFB=y
>  CONFIG_SYS_PROMPT="STM32MP> "
>  CONFIG_CMD_ADTIMG=y
>  CONFIG_CMD_ERASEENV=y
> diff --git a/configs/stm32mp15_trusted_defconfig b/configs/stm32mp15_trusted_defconfig
> index feca26e973..83bd93e3a1 100644
> --- a/configs/stm32mp15_trusted_defconfig
> +++ b/configs/stm32mp15_trusted_defconfig
> @@ -20,6 +20,7 @@ CONFIG_SYS_LOAD_ADDR=0xc2000000
>  CONFIG_FIT=y
>  CONFIG_BOOTDELAY=1
>  CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
> +CONFIG_FDT_SIMPLEFB=y
>  CONFIG_SYS_PROMPT="STM32MP> "
>  CONFIG_CMD_ADTIMG=y
>  CONFIG_CMD_ERASEENV=y
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen
  2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
                   ` (6 preceding siblings ...)
  2021-11-15 15:32 ` [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
@ 2021-11-30 13:31 ` Patrice CHOTARD
  7 siblings, 0 replies; 16+ messages in thread
From: Patrice CHOTARD @ 2021-11-30 13:31 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Alexandru Gagniuc, Anatolij Gustschin, Artem Lapkin,
	Asherah Connor, Bin Meng, Heinrich Schuchardt, Igor Opaniuk,
	Joel Peshkin, Jorge Ramirez-Ortiz, Marek Behún,
	Matthias Brugger, Michal Simek, Ovidiu Panait, Peng Fan,
	Priyanka Jain, Simon Glass, Stefan Roese, Thomas Huth,
	U-Boot STM32, Yannick Fertré

Hi Patrick

On 11/15/21 4:32 PM, Patrick Delaunay wrote:
> 
> Use simple framebuffer node in the Linux kernel device tree
> to preserved the resources (clock, memory) used by the stm32 video
> driver to display the splashscreen.
> 
> See Linux documentation for details:
> Documentation/devicetree/bindings/display/simple-framebuffer.yaml
> 
> The 3 first commits of the series are cleanup steps:
> migration to Kconfig and rename files and function to fdt_simplefb_
> (it seems like a good time time as this function is only used today
>  in RPI boards)
> 
> patch 4 is a preliminary step = add video_is_active function
> 
> patch 5 add a new API fdt_simplefb_enable_and_mem_rsv
> to activate node and add reserved memory for video memory
> 
> patch 6 avoid a issue in kernel when the reserved video memory by
> LTDC driver is not aligned with Linux kernel MMU_SECTION_SIZE
> 
> patch 7 use this new function in stm32mp1 code for STMicroelectronics
> boards when the simple-framebuffer node is present in Linux device tree
> 
> 
> 
> Patrick Delaunay (7):
>   Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig
>   common: rename lcd_simplefb.c file to fdt_simplefb.c
>   common: rename functions lcd_dt_simplefb to fdt_simplefb
>   video: Add video_is_active function
>   common: add fdt_simplefb_enable_and_mem_rsv function
>   video: stm32: stm32_ltdc: align framebuffer on 2MB
>   board: stm32mp1: enable simple framebuffer node for splashscreen
> 
>  board/raspberrypi/rpi/rpi.c               |  2 +-
>  board/st/stm32mp1/stm32mp1.c              |  4 +++
>  common/Kconfig                            |  9 ++++++
>  common/Makefile                           |  2 +-
>  common/{lcd_simplefb.c => fdt_simplefb.c} | 37 ++++++++++++++++++++---
>  configs/rpi_0_w_defconfig                 |  1 +
>  configs/rpi_2_defconfig                   |  1 +
>  configs/rpi_3_32b_defconfig               |  1 +
>  configs/rpi_3_b_plus_defconfig            |  1 +
>  configs/rpi_3_defconfig                   |  1 +
>  configs/rpi_4_32b_defconfig               |  1 +
>  configs/rpi_4_defconfig                   |  1 +
>  configs/rpi_arm64_defconfig               |  1 +
>  configs/rpi_defconfig                     |  1 +
>  configs/stm32mp15_basic_defconfig         |  1 +
>  configs/stm32mp15_defconfig               |  1 +
>  configs/stm32mp15_trusted_defconfig       |  1 +
>  drivers/video/stm32/stm32_ltdc.c          |  5 ++-
>  drivers/video/video-uclass.c              | 14 +++++++++
>  include/configs/rpi.h                     |  1 -
>  include/fdt_simplefb.h                    |  5 +--
>  include/video.h                           |  7 +++++
>  scripts/config_whitelist.txt              |  1 -
>  23 files changed, 87 insertions(+), 12 deletions(-)
>  rename common/{lcd_simplefb.c => fdt_simplefb.c} (65%)
> 

For the series, applied to u-boot-stm32/next
Thanks
Patrice

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-11-30 13:31 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15 15:32 [PATCH 0/7] stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
2021-11-15 15:32 ` [PATCH 1/7] Convert CONFIG_LCD_DT_SIMPLEFB to Kconfig Patrick Delaunay
2021-11-15 15:46   ` Matthias Brugger
2021-11-15 15:32 ` [PATCH 2/7] common: rename lcd_simplefb.c file to fdt_simplefb.c Patrick Delaunay
2021-11-22  7:30   ` [Uboot-stm32] " Patrice CHOTARD
2021-11-15 15:32 ` [PATCH 3/7] common: rename functions lcd_dt_simplefb to fdt_simplefb Patrick Delaunay
2021-11-15 15:47   ` Matthias Brugger
2021-11-15 15:32 ` [PATCH 4/7] video: Add video_is_active function Patrick Delaunay
2021-11-22  7:31   ` [Uboot-stm32] " Patrice CHOTARD
2021-11-15 15:32 ` [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function Patrick Delaunay
2021-11-22  7:33   ` [Uboot-stm32] " Patrice CHOTARD
2021-11-15 15:32 ` [PATCH 6/7] video: stm32: stm32_ltdc: align framebuffer on 2MB Patrick Delaunay
2021-11-22  7:34   ` Patrice CHOTARD
2021-11-15 15:32 ` [PATCH 7/7] board: stm32mp1: enable simple framebuffer node for splashscreen Patrick Delaunay
2021-11-22  7:37   ` Patrice CHOTARD
2021-11-30 13:31 ` [PATCH 0/7] " Patrice CHOTARD

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.