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

Reply via email to