[Uboot-stm32] [PATCH 5/7] common: add fdt_simplefb_enable_and_mem_rsv function

Patrice CHOTARD patrice.chotard at foss.st.com
Mon Nov 22 08:33:34 CET 2021


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 at 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 at foss.st.com>
Thanks
Patrice


More information about the U-Boot mailing list