diff mbox series

[1/9] drivers: video: Kconfig: Necessary configs for video at SPL

Message ID 20230314045019.5671-2-n-jain1@ti.com
State Changes Requested
Delegated to: Simon Glass
Headers show
Series Enable splash screen | expand

Commit Message

Nikhil Jain March 14, 2023, 4:50 a.m. UTC
Add necessary Kconfigs to enable video driver and enable splash screen
at spl stage.
CONFIG_SPL_VIDEO enables all necessary configs enabled by CONFIG_VIDEO
at spl stage.
CONFIG_SPL_SYS_WHITE_ON_BLACK allows displaying on black background at
spl stage.

These configs are specific to SPL and will allow us to enable the video
driver and splash screen at SPL stage only and not at u-boot proper.
The existing Kconfigs from u-boot proper were not used to make SPL
splash screen independent to them.

Enable BMP_GZIP at SPL stage when SPL_SPLASH_SCREEN or SPL_CMD_BMP are
defined.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
 drivers/video/Kconfig | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

Comments

Devarsh Thakkar March 14, 2023, 6:50 a.m. UTC | #1
Hi Nikhil,

Thanks for the patch.

On 14/03/23 10:20, Nikhil M Jain wrote:
> Add necessary Kconfigs to enable video driver and enable splash screen
> at spl stage.
> CONFIG_SPL_VIDEO enables all necessary configs enabled by CONFIG_VIDEO
> at spl stage.
> CONFIG_SPL_SYS_WHITE_ON_BLACK allows displaying on black background at
> spl stage.
>
> These configs are specific to SPL and will allow us to enable the video
> driver and splash screen at SPL stage only and not at u-boot proper.
> The existing Kconfigs from u-boot proper were not used to make SPL
> splash screen independent to them.
>
> Enable BMP_GZIP at SPL stage when SPL_SPLASH_SCREEN or SPL_CMD_BMP are
> defined.
>
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
>   drivers/video/Kconfig | 30 +++++++++++++++++++++++++++---
>   1 file changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 2a76d19cc8..1097e2c623 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -14,7 +14,17 @@ config VIDEO
>   	  option compiles in the video uclass and routes all LCD/video access
>   	  through this.
>   
> -if VIDEO
> +config SPL_VIDEO
> +	bool "Enable driver model support for LCD/video"
> +	depends on SPL_DM
> +	help
> +	  The video subsystem adds a small amount of overhead to the image.
> +	  If this is acceptable and you have a need to use video drivers in
> +	  SPL, enable this option. It might provide a cleaner interface to
> +	  setting up video within SPL, and allows the same drivers to be
> +	  used as U-Boot proper.
> +
> +if VIDEO || SPL_VIDEO
>   
>   config VIDEO_LOGO
>   	bool "Show the U-Boot logo on the display"
> @@ -193,6 +203,14 @@ config SYS_WHITE_ON_BLACK
>   	 better in low-light situations or to reduce eye strain in some
>   	 cases.
>   

My understanding is that for all the common macros under (VIDEO || 
SPL_VIDEO)

(for e.g. like CONFIG_VIDEO_LOGO) code will get compiled in both u-boot 
proper at SPL even

if intended to be enabled for only on of them.

For e.g. you enable CONFIG_VIDEO_LOGO with CONFIG_VIDEO set aiming to 
compiled them

only for u-boot proper but corresponding code will also get compiled for 
u-boot SPL now.

Please confirm but If this is true then from my point of view I think we 
need

unique SPL_VIDEO_* macro (which will depend on SPL_VIDEO) for each of 
the VIDEO_* macros

getting used generally or probably all of them. And use 
CONFIG_IS_ENABLED at all places in video drivers

for each of the macros. Lastly you may also have to update relevant docs 
viz.

docs/README.spl and video related docs if any.

> +config SPL_SYS_WHITE_ON_BLACK
> +	bool "Display console as white on a black background"
> +	help
This should depend upon SPL_VIDEO
> +	 Normally the display is black on a white background, Enable this
> +	 option to invert this, i.e. white on a black background at spl stage.
> +	 This can be better in low-light situations or to reduce eye strain in
> +	 some cases.
> +
>   config NO_FB_CLEAR
>   	bool "Skip framebuffer clear"
>   	help
> @@ -795,7 +813,13 @@ config SPLASH_SCREEN
>   	  image data before it is processed and sent to the frame buffer by
>   	  U-Boot. Define your own version to use this feature.
>   
> -if SPLASH_SCREEN
> +config SPL_SPLASH_SCREEN
> +	bool "Show a splash-screen image"
Same here.
> +	help
> +	  If this option is set, the environment is checked for a variable
> +	  "splashimage" at spl stage.
> +
> +if SPLASH_SCREEN || SPL_SPLASH_SCREEN
>   

If going with above suggested approach then you will need to make

unique macros for SPL.


Regards

Devarsh

>   config SPLASH_SCREEN_ALIGN
>   	bool "Allow positioning the splash image anywhere on the display"
> @@ -863,7 +887,7 @@ endif # SPLASH_SCREEN
>   
>   config VIDEO_BMP_GZIP
>   	bool "Gzip compressed BMP image support"
> -	depends on CMD_BMP || SPLASH_SCREEN
> +	depends on CMD_BMP || SPLASH_SCREEN || SPL_SPLASH_SCREEN || SPL_CMD_BMP
>   	help
>   	  If this option is set, additionally to standard BMP
>   	  images, gzipped BMP images can be displayed via the
Simon Glass March 27, 2023, 8:23 a.m. UTC | #2
On Tue, 14 Mar 2023 at 17:50, Nikhil M Jain <n-jain1@ti.com> wrote:
>
> Add necessary Kconfigs to enable video driver and enable splash screen
> at spl stage.
> CONFIG_SPL_VIDEO enables all necessary configs enabled by CONFIG_VIDEO
> at spl stage.
> CONFIG_SPL_SYS_WHITE_ON_BLACK allows displaying on black background at
> spl stage.
>
> These configs are specific to SPL and will allow us to enable the video
> driver and splash screen at SPL stage only and not at u-boot proper.
> The existing Kconfigs from u-boot proper were not used to make SPL
> splash screen independent to them.
>
> Enable BMP_GZIP at SPL stage when SPL_SPLASH_SCREEN or SPL_CMD_BMP are
> defined.
>
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
>  drivers/video/Kconfig | 30 +++++++++++++++++++++++++++---
>  1 file changed, 27 insertions(+), 3 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>  # qemu-x86_64
diff mbox series

Patch

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 2a76d19cc8..1097e2c623 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -14,7 +14,17 @@  config VIDEO
 	  option compiles in the video uclass and routes all LCD/video access
 	  through this.
 
-if VIDEO
+config SPL_VIDEO
+	bool "Enable driver model support for LCD/video"
+	depends on SPL_DM
+	help
+	  The video subsystem adds a small amount of overhead to the image.
+	  If this is acceptable and you have a need to use video drivers in
+	  SPL, enable this option. It might provide a cleaner interface to
+	  setting up video within SPL, and allows the same drivers to be
+	  used as U-Boot proper.
+
+if VIDEO || SPL_VIDEO
 
 config VIDEO_LOGO
 	bool "Show the U-Boot logo on the display"
@@ -193,6 +203,14 @@  config SYS_WHITE_ON_BLACK
 	 better in low-light situations or to reduce eye strain in some
 	 cases.
 
+config SPL_SYS_WHITE_ON_BLACK
+	bool "Display console as white on a black background"
+	help
+	 Normally the display is black on a white background, Enable this
+	 option to invert this, i.e. white on a black background at spl stage.
+	 This can be better in low-light situations or to reduce eye strain in
+	 some cases.
+
 config NO_FB_CLEAR
 	bool "Skip framebuffer clear"
 	help
@@ -795,7 +813,13 @@  config SPLASH_SCREEN
 	  image data before it is processed and sent to the frame buffer by
 	  U-Boot. Define your own version to use this feature.
 
-if SPLASH_SCREEN
+config SPL_SPLASH_SCREEN
+	bool "Show a splash-screen image"
+	help
+	  If this option is set, the environment is checked for a variable
+	  "splashimage" at spl stage.
+
+if SPLASH_SCREEN || SPL_SPLASH_SCREEN
 
 config SPLASH_SCREEN_ALIGN
 	bool "Allow positioning the splash image anywhere on the display"
@@ -863,7 +887,7 @@  endif # SPLASH_SCREEN
 
 config VIDEO_BMP_GZIP
 	bool "Gzip compressed BMP image support"
-	depends on CMD_BMP || SPLASH_SCREEN
+	depends on CMD_BMP || SPLASH_SCREEN || SPL_SPLASH_SCREEN || SPL_CMD_BMP
 	help
 	  If this option is set, additionally to standard BMP
 	  images, gzipped BMP images can be displayed via the