Re: [PATCH 6/6] video/logo: move logo selection logic to Kconfig

Vincent Mailhol <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.comp.video.dri.devel,gmane.linux.kernel
Message-ID <[email protected]>
Happy new year!

On 30/12/2025 at 23:20, Vincent Mailhol wrote:
> Now that the path to the logo file can be directly entered in Kbuild,
> there is no more need to handle all the logo file selection in the
> Makefile and the C files.
> 
> Move all the logo file selection logic to Kbuild, this done, clean-up
> the C code to only leave one entry for each logo type (monochrome,
> 16-colors and 224-colors).
> 
> Signed-off-by: Vincent Mailhol <[email protected]>
> ---
>  drivers/video/logo/Kconfig  | 49 +++++++++------------------------------------
>  drivers/video/logo/Makefile | 21 +------------------
>  drivers/video/logo/logo.c   | 46 ++++--------------------------------------
>  include/linux/linux_logo.h  |  9 ---------
>  4 files changed, 14 insertions(+), 111 deletions(-)
> 
> diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
> index 1d1651c067a1..9bf8f14c6856 100644
> --- a/drivers/video/logo/Kconfig
> +++ b/drivers/video/logo/Kconfig
> @@ -25,6 +25,7 @@ config LOGO_LINUX_MONO
>  config LOGO_LINUX_MONO_FILE
>  	string "Monochrome logo .pbm file"
>  	depends on LOGO_LINUX_MONO
> +	default "drivers/video/logo/logo_superh_mono.pbm" if SUPERH
>  	default "drivers/video/logo/logo_linux_mono.pbm"
>  	help
>  	  Takes a path to a monochromatic logo in the portable pixmap file
> @@ -42,6 +43,7 @@ config LOGO_LINUX_VGA16
>  config LOGO_LINUX_VGA16_FILE
>  	string "16-color logo .ppm file"
>  	depends on LOGO_LINUX_VGA16
> +	default "drivers/video/logo/logo_superh_vga16.ppm" if SUPERH
>  	default "drivers/video/logo/logo_linux_vga16.ppm"
>  	help
>  	  Takes a path to a logo in the portable pixmap file format (.ppm),
> @@ -61,6 +63,13 @@ config LOGO_LINUX_CLUT224
>  config LOGO_LINUX_CLUT224_FILE
>  	string "224-color logo .ppm file"
>  	depends on LOGO_LINUX_CLUT224
> +	default "drivers/video/logo/logo_dec_clut224.ppm" if MACH_DECSTATION || ALPHA
> +	default "drivers/video/logo/logo_mac_clut224.ppm" if MAC
> +	default "drivers/video/logo/logo_parisc_clut224.ppm" if PARISC
> +	default "drivers/video/logo/logo_sgi_clut224.ppm" if SGI_IP22 || SGI_IP27 || SGI_IP32
> +	default "drivers/video/logo/logo_sun_clut224.ppm" if SPARC
> +	default "drivers/video/logo/logo_superh_clut224.ppm" if SUPERH
> +	default "drivers/video/logo/logo_spe_clut224.ppm" if SPU_BASE
>  	default "drivers/video/logo/logo_linux_clut224.ppm"
>  	help
>  	  Takes a path to a 224-color logo in the portable pixmap file
> @@ -71,44 +80,4 @@ config LOGO_LINUX_CLUT224_FILE
>  
>  	    magick source_image -compress none -colors 224 destination.ppm
>  
> -config LOGO_DEC_CLUT224
> -	bool "224-color Digital Equipment Corporation Linux logo"
> -	depends on MACH_DECSTATION || ALPHA
> -	default y
> -
> -config LOGO_MAC_CLUT224
> -	bool "224-color Macintosh Linux logo"
> -	depends on MAC
> -	default y
> -
> -config LOGO_PARISC_CLUT224
> -	bool "224-color PA-RISC Linux logo"
> -	depends on PARISC
> -	default y
> -
> -config LOGO_SGI_CLUT224
> -	bool "224-color SGI Linux logo"
> -	depends on SGI_IP22 || SGI_IP27 || SGI_IP32
> -	default y
> -
> -config LOGO_SUN_CLUT224
> -	bool "224-color Sun Linux logo"
> -	depends on SPARC
> -	default y
> -
> -config LOGO_SUPERH_MONO
> -	bool "Black and white SuperH Linux logo"
> -	depends on SUPERH
> -	default y
> -
> -config LOGO_SUPERH_VGA16
> -	bool "16-color SuperH Linux logo"
> -	depends on SUPERH
> -	default y
> -
> -config LOGO_SUPERH_CLUT224
> -	bool "224-color SuperH Linux logo"
> -	depends on SUPERH
> -	default y
> -
>  endif # LOGO
> diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
> index ac8e9da3f51a..c32238fddaa6 100644
> --- a/drivers/video/logo/Makefile
> +++ b/drivers/video/logo/Makefile
> @@ -5,16 +5,6 @@ obj-$(CONFIG_LOGO)			+= logo.o
>  obj-$(CONFIG_LOGO_LINUX_MONO)		+= logo_linux_mono.o
>  obj-$(CONFIG_LOGO_LINUX_VGA16)		+= logo_linux_vga16.o
>  obj-$(CONFIG_LOGO_LINUX_CLUT224)	+= logo_linux_clut224.o
> -obj-$(CONFIG_LOGO_DEC_CLUT224)		+= logo_dec_clut224.o
> -obj-$(CONFIG_LOGO_MAC_CLUT224)		+= logo_mac_clut224.o
> -obj-$(CONFIG_LOGO_PARISC_CLUT224)	+= logo_parisc_clut224.o
> -obj-$(CONFIG_LOGO_SGI_CLUT224)		+= logo_sgi_clut224.o
> -obj-$(CONFIG_LOGO_SUN_CLUT224)		+= logo_sun_clut224.o
> -obj-$(CONFIG_LOGO_SUPERH_MONO)		+= logo_superh_mono.o
> -obj-$(CONFIG_LOGO_SUPERH_VGA16)		+= logo_superh_vga16.o
> -obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
> -
> -obj-$(CONFIG_SPU_BASE)			+= logo_spe_clut224.o

Removing the logo_spe_clut224.o target was a mistake. This removes the
logo_spe_clut224 object which is still being referenced in

  arch/powerpc/platforms/cell/spu_base.c

The Cell processor (found, for example in the PS3) has a unique
feature in the kernel: it will not only show the standard penguin
logos for each of the core, but also show an extra line of logos for
each of its SPE core. More details with a screenshot here:

  Link: https://lore.kernel.org/all/[email protected]/

And indeed, on a ps3_defconfig, I am getting this build error:

    CC      arch/powerpc/platforms/cell/spu_base.o
  arch/powerpc/platforms/cell/spu_base.c: In function 'init_spu_base':
  arch/powerpc/platforms/cell/spu_base.c:775:39: error: 'logo_spe_clut224' undeclared (first use in this function); did you mean 'logo_linux_clut224'?
    775 |                 fb_append_extra_logo(&logo_spe_clut224, ret);
        |                                       ^~~~~~~~~~~~~~~~
        |                                       logo_linux_clut224

This extra logo feature is a weird beast only used by a single CPU. I
will just restore the logo_spe_clut224.o target in v2 and leave it
untouched.

I checked and the other logo objects are not being referenced anymore
throughout the kernel.


Yours sincerely,
Vincent Mailhol
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.