diff options
author | Tom Rini <trini@konsulko.com> | 2024-10-22 14:11:20 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-10-22 14:11:20 -0600 |
commit | 392ff1449f7d30cc48fd4d17320d05882cd68f2e (patch) | |
tree | 14cbc33a7c2d0d57f72e537dc66a23bd694102de | |
parent | 6606a6adfaf8517cff7e5fe0fb206beed80087d5 (diff) | |
parent | 722073a0653dd18d0148dd435f067be4e82f9129 (diff) |
Merge tag 'video-20241022' of https://source.denx.de/u-boot/custodians/u-boot-video
CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/22907
* VNBYTES() comment fix
* add VIDEO dependency for FDT_SIMPLEFB
* fdt_simplefb: drop not needed CONFIG_VIDEO check
* am62x,evm: preserve splash screen while OS is booting
* simplefb: warning fix for CONFIG_FDT_64BIT=n
-rw-r--r-- | board/ti/am62x/evm.c | 21 | ||||
-rw-r--r-- | boot/Kconfig | 1 | ||||
-rw-r--r-- | boot/fdt_simplefb.c | 2 | ||||
-rw-r--r-- | drivers/video/simplefb.c | 3 | ||||
-rw-r--r-- | include/video.h | 6 |
5 files changed, 25 insertions, 8 deletions
diff --git a/board/ti/am62x/evm.c b/board/ti/am62x/evm.c index 1166c9b8e09..9075df01cac 100644 --- a/board/ti/am62x/evm.c +++ b/board/ti/am62x/evm.c @@ -16,6 +16,7 @@ #include <cpu_func.h> #include <k3-ddrss.h> #include <fdt_support.h> +#include <fdt_simplefb.h> #include <asm/io.h> #include <asm/arch/hardware.h> #include <dm/uclass.h> @@ -162,3 +163,23 @@ void spl_perform_fixups(struct spl_image_info *spl_image) #endif } #endif + +#if defined(CONFIG_OF_BOARD_SETUP) +int ft_board_setup(void *blob, struct bd_info *bd) +{ + int ret = -1; + + if (IS_ENABLED(CONFIG_FDT_SIMPLEFB)) + ret = fdt_simplefb_enable_and_mem_rsv(blob); + + /* If simplefb is not enabled and video is active, then at least reserve + * the framebuffer region to preserve the splash screen while OS is booting + */ + if (IS_ENABLED(CONFIG_VIDEO) && IS_ENABLED(CONFIG_OF_LIBFDT)) { + if (ret && video_is_active()) + return fdt_add_fb_mem_rsv(blob); + } + + return 0; +} +#endif diff --git a/boot/Kconfig b/boot/Kconfig index 1ce1da6020c..fe2919f18c4 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -1683,6 +1683,7 @@ config FDT_FIXUP_PARTITIONS config FDT_SIMPLEFB bool "FDT tools for simplefb support" + depends on VIDEO 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 diff --git a/boot/fdt_simplefb.c b/boot/fdt_simplefb.c index 71b833eb9bd..5822131767d 100644 --- a/boot/fdt_simplefb.c +++ b/boot/fdt_simplefb.c @@ -103,7 +103,6 @@ static int fdt_simplefb_enable_existing_node(void *blob) return fdt_simplefb_configure_node(blob, off); } -#if IS_ENABLED(CONFIG_VIDEO) int fdt_simplefb_enable_and_mem_rsv(void *blob) { int ret; @@ -118,4 +117,3 @@ int fdt_simplefb_enable_and_mem_rsv(void *blob) return fdt_add_fb_mem_rsv(blob); } -#endif diff --git a/drivers/video/simplefb.c b/drivers/video/simplefb.c index cb518b149cb..239b006744d 100644 --- a/drivers/video/simplefb.c +++ b/drivers/video/simplefb.c @@ -27,7 +27,8 @@ static int simple_video_probe(struct udevice *dev) return -EINVAL; } - debug("%s: base=%llx, size=%llu\n", __func__, base, size); + debug("%s: base=%llx, size=%llu\n", + __func__, (unsigned long long)base, (unsigned long long)size); /* * TODO is there some way to reserve the framebuffer diff --git a/include/video.h b/include/video.h index c7afe22d823..4ec71ab16da 100644 --- a/include/video.h +++ b/include/video.h @@ -57,12 +57,8 @@ enum video_log2_bpp { VIDEO_BPP32, }; -/* - * Convert enum video_log2_bpp to bytes and bits. Note we omit the outer - * brackets to allow multiplication by fractional pixels. - */ +/* Convert enum video_log2_bpp to bytes and bits */ #define VNBYTES(bpix) ((1 << (bpix)) / 8) - #define VNBITS(bpix) (1 << (bpix)) enum video_format { |