* [PATCH v2 1/6] video/logo: remove orphan .pgm Makefile rule
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 2/6] video/logo: add a type parameter to the logo makefile function Vincent Mailhol
` (4 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
The kernel has no actual grey-scale logos. And looking at the git
history, it seems that there never was one (or maybe there was in the
pre-git history? I did not check that far…)
Remove the Makefile rule for the .pgm grey scale images.
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
drivers/video/logo/Makefile | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
index 895c60b8402e..8b67c4941a4c 100644
--- a/drivers/video/logo/Makefile
+++ b/drivers/video/logo/Makefile
@@ -30,8 +30,5 @@ $(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE
$(obj)/%.c: $(src)/%.ppm $(obj)/pnmtologo FORCE
$(call if_changed,logo)
-$(obj)/%.c: $(src)/%.pgm $(obj)/pnmtologo FORCE
- $(call if_changed,logo)
-
# generated C files
-targets += *_mono.c *_vga16.c *_clut224.c *_gray256.c
+targets += *_mono.c *_vga16.c *_clut224.c
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 2/6] video/logo: add a type parameter to the logo makefile function
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 1/6] video/logo: remove orphan .pgm Makefile rule Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 3/6] video/logo: allow custom logo Vincent Mailhol
` (3 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
When translating a portable pixmap file into a .c file, the pnmtologo
tool expects to receive the image type (either mono, vga16 or clut224)
as an argument under the -t option.
Currently, this information is stored in the file name. Because we
will allow for custom logo in an upcoming change, it is preferable to
decouple the image name from its type.
Add a new $2 parameter to the Makefile logo function which contains
the image type.
Update all the individual targets to provide this new argument.
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
drivers/video/logo/Makefile | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
index 8b67c4941a4c..3f249e9dcf37 100644
--- a/drivers/video/logo/Makefile
+++ b/drivers/video/logo/Makefile
@@ -22,13 +22,16 @@ hostprogs := pnmtologo
# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
quiet_cmd_logo = LOGO $@
- cmd_logo = $(obj)/pnmtologo -t $(lastword $(subst _, ,$*)) -n $* -o $@ $<
+ cmd_logo = $(obj)/pnmtologo -t $2 -n $* -o $@ $<
$(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE
- $(call if_changed,logo)
+ $(call if_changed,logo,mono)
-$(obj)/%.c: $(src)/%.ppm $(obj)/pnmtologo FORCE
- $(call if_changed,logo)
+$(obj)/%_vga16.c: $(src)/%_vga16.ppm $(obj)/pnmtologo FORCE
+ $(call if_changed,logo,vga16)
+
+$(obj)/%_clut224.c: $(src)/%_clut224.ppm $(obj)/pnmtologo FORCE
+ $(call if_changed,logo,clut224)
# generated C files
targets += *_mono.c *_vga16.c *_clut224.c
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 3/6] video/logo: allow custom logo
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 1/6] video/logo: remove orphan .pgm Makefile rule Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 2/6] video/logo: add a type parameter to the logo makefile function Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 4/6] newport_con: depend on LOGO_LINUX_CLUT224 instead of LOGO_SGI_CLUT224 Vincent Mailhol
` (2 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
Some people like to replace the default Tux boot logo by an image of
their own. There exist a few tutorials here [1] and there [2]. But
this requires modifying the sources which is a bit cumbersome.
Add a string entry in Kbuild for each of the logo categories
(monochrome, 16-colors, 224-colors). The string entry takes a path to
a .pbm or .ppm image allowing the user to more easily provide a custom
logo without having to modify the sources.
Add an help entry with a short hint on how to convert images to the
portable pixmap file format.
Update the Makefile accordingly. When converted to .c file, the logo
will have one of these fixed file name:
- logo_linux_mono.c
- logo_linux_vga16.c
- logo_linux_clut224.c:
depending on the image type and this regardless of the name of the
.pgm/.ppm source filename. This will allow for further simplifications
in an upcoming change.
[1] ArmadeuS Project wiki -- Linux Boot Logo
Link: https://www.armadeus.org/wiki/index.php?title=Linux_Boot_Logo
[2] Timesys -- How To Use a Custom Boot Logo / Splash Screen
Link: https://linuxlink.timesys.com/docs/wiki/engineering/HOWTO_Use_a_custom_boot_logo
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
drivers/video/logo/Kconfig | 41 +++++++++++++++++++++++++++++++++++++++++
drivers/video/logo/Makefile | 11 ++++++++++-
2 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
index ce6bb753522d..1d1651c067a1 100644
--- a/drivers/video/logo/Kconfig
+++ b/drivers/video/logo/Kconfig
@@ -22,14 +22,55 @@ config LOGO_LINUX_MONO
bool "Standard black and white Linux logo"
default y
+config LOGO_LINUX_MONO_FILE
+ string "Monochrome logo .pbm file"
+ depends on LOGO_LINUX_MONO
+ default "drivers/video/logo/logo_linux_mono.pbm"
+ help
+ Takes a path to a monochromatic logo in the portable pixmap file
+ format (.pbm). This defaults to the Tux penguin.
+
+ For example, the below ImageMagick command can be used to reduce
+ an image to black and white and convert it into a pbm file:
+
+ magick source_image -compress none destination.pbm
+
config LOGO_LINUX_VGA16
bool "Standard 16-color Linux logo"
default y
+config LOGO_LINUX_VGA16_FILE
+ string "16-color logo .ppm file"
+ depends on LOGO_LINUX_VGA16
+ default "drivers/video/logo/logo_linux_vga16.ppm"
+ help
+ Takes a path to a logo in the portable pixmap file format (.ppm),
+ using the 16 colors from the drivers/video/logo/clut_vga16.ppm
+ palette. This defaults to the Tux penguin.
+
+ For example, the below ImageMagick command can be used to reduce an
+ image to the VGA 16 colors palette and convert into a ppm file:
+
+ magick source_image -compress none \
+ -remap drivers/video/logo/clut_vga16.ppm destination.ppm
+
config LOGO_LINUX_CLUT224
bool "Standard 224-color Linux logo"
default y
+config LOGO_LINUX_CLUT224_FILE
+ string "224-color logo .ppm file"
+ depends on LOGO_LINUX_CLUT224
+ default "drivers/video/logo/logo_linux_clut224.ppm"
+ help
+ Takes a path to a 224-color logo in the portable pixmap file
+ format (.ppm). This defaults to the Tux penguin.
+
+ For example, the below ImageMagick command can be used to reduce
+ an image palette to 224 colors and convert it into a ppm 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
diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
index 3f249e9dcf37..ac8e9da3f51a 100644
--- a/drivers/video/logo/Makefile
+++ b/drivers/video/logo/Makefile
@@ -22,7 +22,16 @@ hostprogs := pnmtologo
# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
quiet_cmd_logo = LOGO $@
- cmd_logo = $(obj)/pnmtologo -t $2 -n $* -o $@ $<
+ cmd_logo = $(obj)/pnmtologo -t $2 -n $(basename $(notdir $@)) -o $@ $<
+
+$(obj)/logo_linux_mono.c: $(CONFIG_LOGO_LINUX_MONO_FILE) $(obj)/pnmtologo FORCE
+ $(call if_changed,logo,mono)
+
+$(obj)/logo_linux_vga16.c: $(CONFIG_LOGO_LINUX_VGA16_FILE) $(obj)/pnmtologo FORCE
+ $(call if_changed,logo,vga16)
+
+$(obj)/logo_linux_clut224.c: $(CONFIG_LOGO_LINUX_CLUT224_FILE) $(obj)/pnmtologo FORCE
+ $(call if_changed,logo,clut224)
$(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE
$(call if_changed,logo,mono)
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 4/6] newport_con: depend on LOGO_LINUX_CLUT224 instead of LOGO_SGI_CLUT224
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
` (2 preceding siblings ...)
2026-01-01 15:25 ` [PATCH v2 3/6] video/logo: allow custom logo Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 5/6] sh: defconfig: remove CONFIG_LOGO_SUPERH_* Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig Vincent Mailhol
5 siblings, 0 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
newport_show_logo() is only activated if CONFIG_LOGO_LINUX_CLUT224 is
set (otherwise it is a NOP). This configuration value will be removed
in an upcoming change so instead, make it depend on LOGO_LINUX_CLUT224.
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
drivers/video/console/newport_con.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/video/console/newport_con.c b/drivers/video/console/newport_con.c
index 242415366074..337e04236d6d 100644
--- a/drivers/video/console/newport_con.c
+++ b/drivers/video/console/newport_con.c
@@ -95,7 +95,7 @@ static inline void newport_init_cmap(void)
static const struct linux_logo *newport_show_logo(void)
{
-#ifdef CONFIG_LOGO_SGI_CLUT224
+#ifdef CONFIG_LOGO_LINUX_CLUT224
const struct linux_logo *logo = fb_find_logo(8);
const unsigned char *clut;
const unsigned char *data;
@@ -127,7 +127,7 @@ static const struct linux_logo *newport_show_logo(void)
return logo;
#else
return NULL;
-#endif /* CONFIG_LOGO_SGI_CLUT224 */
+#endif /* CONFIG_LOGO_LINUX_CLUT224 */
}
static inline void newport_clear_screen(int xstart, int ystart, int xend,
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 5/6] sh: defconfig: remove CONFIG_LOGO_SUPERH_*
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
` (3 preceding siblings ...)
2026-01-01 15:25 ` [PATCH v2 4/6] newport_con: depend on LOGO_LINUX_CLUT224 instead of LOGO_SGI_CLUT224 Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-01 15:25 ` [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig Vincent Mailhol
5 siblings, 0 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
CONFIG_LOGO_SUPERH_MONO, CONFIG_LOGO_SUPERH_VGA16 and
CONFIG_LOGO_SUPERH_CLUT224 will be removed in an upcoming change but
are still referenced in some of the defconfig.
Remove all the occurrences of CONFIG_LOGO_SUPERH_*.
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
arch/sh/configs/dreamcast_defconfig | 2 --
arch/sh/configs/ecovec24_defconfig | 2 --
arch/sh/configs/kfr2r09_defconfig | 2 --
arch/sh/configs/migor_defconfig | 2 --
arch/sh/configs/rts7751r2d1_defconfig | 2 --
arch/sh/configs/rts7751r2dplus_defconfig | 2 --
arch/sh/configs/se7724_defconfig | 2 --
arch/sh/configs/se7780_defconfig | 2 --
arch/sh/configs/sh7785lcr_defconfig | 3 ---
arch/sh/configs/urquell_defconfig | 3 ---
10 files changed, 22 deletions(-)
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index 4573d5d64989..dd58797e8298 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_defconfig
@@ -60,8 +60,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
# CONFIG_DNOTIFY is not set
CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
diff --git a/arch/sh/configs/ecovec24_defconfig b/arch/sh/configs/ecovec24_defconfig
index 458115d83184..e751933ac840 100644
--- a/arch/sh/configs/ecovec24_defconfig
+++ b/arch/sh/configs/ecovec24_defconfig
@@ -78,8 +78,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SEQUENCER=y
diff --git a/arch/sh/configs/kfr2r09_defconfig b/arch/sh/configs/kfr2r09_defconfig
index d80e83e7ec38..056ba52600f9 100644
--- a/arch/sh/configs/kfr2r09_defconfig
+++ b/arch/sh/configs/kfr2r09_defconfig
@@ -66,8 +66,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_CLUT224 is not set
CONFIG_USB_GADGET=y
CONFIG_USB_CDC_COMPOSITE=m
CONFIG_MMC=y
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 7cdaa909ffd6..1d9d543eef4c 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_defconfig
@@ -71,8 +71,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_CLUT224 is not set
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_M66592=y
CONFIG_USB_G_SERIAL=m
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index 0c54ab2b06e6..745490d4807f 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_defconfig
@@ -50,8 +50,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=m
CONFIG_SND_YMFPCI=m
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index 3173b616b2cb..cd90f5354459 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_defconfig
@@ -55,8 +55,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=m
CONFIG_SND_YMFPCI=m
diff --git a/arch/sh/configs/se7724_defconfig b/arch/sh/configs/se7724_defconfig
index 8ca46d704c8b..9b4f8f3a1fdf 100644
--- a/arch/sh/configs/se7724_defconfig
+++ b/arch/sh/configs/se7724_defconfig
@@ -79,8 +79,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=m
# CONFIG_SND_DRIVERS is not set
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index 12463b766120..13fa6a59b8f1 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_defconfig
@@ -66,8 +66,6 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SOUND_PRIME=y
CONFIG_HID_A4TECH=y
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 2fcf50d8c820..8738c590d5a0 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_defconfig
@@ -60,9 +60,6 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
-# CONFIG_LOGO_SUPERH_CLUT224 is not set
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
diff --git a/arch/sh/configs/urquell_defconfig b/arch/sh/configs/urquell_defconfig
index f51ff6b1ec38..e7924db29b69 100644
--- a/arch/sh/configs/urquell_defconfig
+++ b/arch/sh/configs/urquell_defconfig
@@ -86,9 +86,6 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_SUPERH_MONO is not set
-# CONFIG_LOGO_SUPERH_VGA16 is not set
-# CONFIG_LOGO_SUPERH_CLUT224 is not set
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-01 15:25 [PATCH v2 0/6] video/logo: allow custom boot logo and simplify logic Vincent Mailhol
` (4 preceding siblings ...)
2026-01-01 15:25 ` [PATCH v2 5/6] sh: defconfig: remove CONFIG_LOGO_SUPERH_* Vincent Mailhol
@ 2026-01-01 15:25 ` Vincent Mailhol
2026-01-06 11:48 ` Geert Uytterhoeven
5 siblings, 1 reply; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-01 15:25 UTC (permalink / raw)
To: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz
Cc: linux-fbdev, dri-devel, linux-kernel, linux-sh, Vincent Mailhol
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.
The only exception is the logo_spe_clut224 which is only used by the
Cell processor (found for example in the Playstation 3) [1]. This
extra logo uses its own different image which shows up on a separate
line just below the normal logo. Because the extra logo uses a
different image, it can not be factorized under the custom logo logic.
Move all the logo file selection logic to Kbuild (except from the
logo_spe_clut224.ppm), this done, clean-up the C code to only leave
one entry for each logo type (monochrome, 16-colors and 224-colors).
[1] Cell SPE logos
Link: https://lore.kernel.org/all/20070710122702.765654000@pademelon.sonytel.be/
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
---
**Changelog**
v1 -> v2:
- By removing the logo_spe_clut224.o target from the Makefile, v1
also removed the logo_spe_clut224 object which is still being
referenced in
arch/powerpc/platforms/cell/spu_base.c
Restore the logo_spe_clut224.o target.
Link: https://lore.kernel.org/all/20251230-custom-logo-v1-6-4736374569ee@kernel.org/
---
drivers/video/logo/Kconfig | 48 ++++++++-------------------------------------
drivers/video/logo/Makefile | 14 -------------
drivers/video/logo/logo.c | 46 ++++---------------------------------------
include/linux/linux_logo.h | 8 --------
4 files changed, 12 insertions(+), 104 deletions(-)
diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
index 1d1651c067a1..af9301ebc51c 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,12 @@ 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_linux_clut224.ppm"
help
Takes a path to a 224-color logo in the portable pixmap file
@@ -71,44 +79,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..0eddb6231edb 100644
--- a/drivers/video/logo/Makefile
+++ b/drivers/video/logo/Makefile
@@ -5,14 +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
@@ -33,12 +25,6 @@ $(obj)/logo_linux_vga16.c: $(CONFIG_LOGO_LINUX_VGA16_FILE) $(obj)/pnmtologo FORC
$(obj)/logo_linux_clut224.c: $(CONFIG_LOGO_LINUX_CLUT224_FILE) $(obj)/pnmtologo FORCE
$(call if_changed,logo,clut224)
-$(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE
- $(call if_changed,logo,mono)
-
-$(obj)/%_vga16.c: $(src)/%_vga16.ppm $(obj)/pnmtologo FORCE
- $(call if_changed,logo,vga16)
-
$(obj)/%_clut224.c: $(src)/%_clut224.ppm $(obj)/pnmtologo FORCE
$(call if_changed,logo,clut224)
diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
index 141f15a9a459..91535f8848da 100644
--- a/drivers/video/logo/logo.c
+++ b/drivers/video/logo/logo.c
@@ -48,59 +48,21 @@ const struct linux_logo * __ref fb_find_logo(int depth)
if (nologo || logos_freed)
return NULL;
- if (depth >= 1) {
#ifdef CONFIG_LOGO_LINUX_MONO
- /* Generic Linux logo */
+ if (depth >= 1)
logo = &logo_linux_mono;
#endif
-#ifdef CONFIG_LOGO_SUPERH_MONO
- /* SuperH Linux logo */
- logo = &logo_superh_mono;
-#endif
- }
- if (depth >= 4) {
#ifdef CONFIG_LOGO_LINUX_VGA16
- /* Generic Linux logo */
+ if (depth >= 4)
logo = &logo_linux_vga16;
#endif
-#ifdef CONFIG_LOGO_SUPERH_VGA16
- /* SuperH Linux logo */
- logo = &logo_superh_vga16;
-#endif
- }
- if (depth >= 8) {
#ifdef CONFIG_LOGO_LINUX_CLUT224
- /* Generic Linux logo */
+ if (depth >= 8)
logo = &logo_linux_clut224;
#endif
-#ifdef CONFIG_LOGO_DEC_CLUT224
- /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
- logo = &logo_dec_clut224;
-#endif
-#ifdef CONFIG_LOGO_MAC_CLUT224
- /* Macintosh Linux logo on m68k */
- if (MACH_IS_MAC)
- logo = &logo_mac_clut224;
-#endif
-#ifdef CONFIG_LOGO_PARISC_CLUT224
- /* PA-RISC Linux logo */
- logo = &logo_parisc_clut224;
-#endif
-#ifdef CONFIG_LOGO_SGI_CLUT224
- /* SGI Linux logo on MIPS/MIPS64 */
- logo = &logo_sgi_clut224;
-#endif
-#ifdef CONFIG_LOGO_SUN_CLUT224
- /* Sun Linux logo */
- logo = &logo_sun_clut224;
-#endif
-#ifdef CONFIG_LOGO_SUPERH_CLUT224
- /* SuperH Linux logo */
- logo = &logo_superh_clut224;
-#endif
- }
+
return logo;
}
EXPORT_SYMBOL_GPL(fb_find_logo);
diff --git a/include/linux/linux_logo.h b/include/linux/linux_logo.h
index e37699b7e839..1e727a2cb4c1 100644
--- a/include/linux/linux_logo.h
+++ b/include/linux/linux_logo.h
@@ -33,14 +33,6 @@ struct linux_logo {
extern const struct linux_logo logo_linux_mono;
extern const struct linux_logo logo_linux_vga16;
extern const struct linux_logo logo_linux_clut224;
-extern const struct linux_logo logo_dec_clut224;
-extern const struct linux_logo logo_mac_clut224;
-extern const struct linux_logo logo_parisc_clut224;
-extern const struct linux_logo logo_sgi_clut224;
-extern const struct linux_logo logo_sun_clut224;
-extern const struct linux_logo logo_superh_mono;
-extern const struct linux_logo logo_superh_vga16;
-extern const struct linux_logo logo_superh_clut224;
extern const struct linux_logo logo_spe_clut224;
extern const struct linux_logo *fb_find_logo(int depth);
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-01 15:25 ` [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig Vincent Mailhol
@ 2026-01-06 11:48 ` Geert Uytterhoeven
2026-01-06 12:56 ` Daniel Palmer
2026-01-06 20:10 ` Vincent Mailhol
0 siblings, 2 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2026-01-06 11:48 UTC (permalink / raw)
To: Vincent Mailhol
Cc: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz, linux-fbdev, dri-devel, linux-kernel,
linux-sh, linux-m68k
Hi Vincent,
CC linux-m68k
Thanks for your patch, which is now commit bd710b3da7308cb1
("video/logo: move logo selection logic to Kconfig") in fbdev/for-next.
On Thu, 1 Jan 2026 at 16:26, Vincent Mailhol <mailhol@kernel.org> 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.
This may do the wrong thing when booting a multi-platform kernel.
>
> The only exception is the logo_spe_clut224 which is only used by the
> Cell processor (found for example in the Playstation 3) [1]. This
> extra logo uses its own different image which shows up on a separate
> line just below the normal logo. Because the extra logo uses a
> different image, it can not be factorized under the custom logo logic.
>
> Move all the logo file selection logic to Kbuild (except from the
> logo_spe_clut224.ppm), this done, clean-up the C code to only leave
> one entry for each logo type (monochrome, 16-colors and 224-colors).
>
> [1] Cell SPE logos
> Link: https://lore.kernel.org/all/20070710122702.765654000@pademelon.sonytel.be/
>
> Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
> --- a/drivers/video/logo/Kconfig
> +++ b/drivers/video/logo/Kconfig
> @@ -61,6 +63,12 @@ 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
E.g. an m68k multi-platform kernel including Mac support will scare
non-Mac users into thinking their machine was assimilated by the
Apple Empire...
> + 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_linux_clut224.ppm"
> help
> Takes a path to a 224-color logo in the portable pixmap file
> --- a/drivers/video/logo/logo.c
> +++ b/drivers/video/logo/logo.c
> @@ -48,59 +48,21 @@ const struct linux_logo * __ref fb_find_logo(int depth)
> if (nologo || logos_freed)
> return NULL;
>
> - if (depth >= 1) {
> #ifdef CONFIG_LOGO_LINUX_MONO
> - /* Generic Linux logo */
> + if (depth >= 1)
> logo = &logo_linux_mono;
> #endif
> -#ifdef CONFIG_LOGO_SUPERH_MONO
> - /* SuperH Linux logo */
> - logo = &logo_superh_mono;
> -#endif
> - }
>
> - if (depth >= 4) {
> #ifdef CONFIG_LOGO_LINUX_VGA16
> - /* Generic Linux logo */
> + if (depth >= 4)
> logo = &logo_linux_vga16;
> #endif
> -#ifdef CONFIG_LOGO_SUPERH_VGA16
> - /* SuperH Linux logo */
> - logo = &logo_superh_vga16;
> -#endif
> - }
>
> - if (depth >= 8) {
> #ifdef CONFIG_LOGO_LINUX_CLUT224
> - /* Generic Linux logo */
> + if (depth >= 8)
> logo = &logo_linux_clut224;
> #endif
> -#ifdef CONFIG_LOGO_DEC_CLUT224
> - /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
> - logo = &logo_dec_clut224;
> -#endif
> -#ifdef CONFIG_LOGO_MAC_CLUT224
> - /* Macintosh Linux logo on m68k */
> - if (MACH_IS_MAC)
MACH_IS_MAC can be a runtime check.
> - logo = &logo_mac_clut224;
> -#endif
> -#ifdef CONFIG_LOGO_PARISC_CLUT224
> - /* PA-RISC Linux logo */
> - logo = &logo_parisc_clut224;
> -#endif
> -#ifdef CONFIG_LOGO_SGI_CLUT224
> - /* SGI Linux logo on MIPS/MIPS64 */
> - logo = &logo_sgi_clut224;
> -#endif
> -#ifdef CONFIG_LOGO_SUN_CLUT224
> - /* Sun Linux logo */
> - logo = &logo_sun_clut224;
> -#endif
> -#ifdef CONFIG_LOGO_SUPERH_CLUT224
> - /* SuperH Linux logo */
> - logo = &logo_superh_clut224;
> -#endif
> - }
> +
> return logo;
> }
> EXPORT_SYMBOL_GPL(fb_find_logo);
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-06 11:48 ` Geert Uytterhoeven
@ 2026-01-06 12:56 ` Daniel Palmer
2026-01-06 20:10 ` Vincent Mailhol
1 sibling, 0 replies; 13+ messages in thread
From: Daniel Palmer @ 2026-01-06 12:56 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Vincent Mailhol, Helge Deller, Greg Kroah-Hartman, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, linux-fbdev, dri-devel,
linux-kernel, linux-sh, linux-m68k
On Tue, 6 Jan 2026 at 20:54, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> E.g. an m68k multi-platform kernel including Mac support will scare
> non-Mac users into thinking their machine was assimilated by the
> Apple Empire...
>
This is actually how I tell if my Amiga or Mac is currently connected
to my monitor... Amiga has the normal tux, Mac has the tux inside of a
monitor.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-06 11:48 ` Geert Uytterhoeven
2026-01-06 12:56 ` Daniel Palmer
@ 2026-01-06 20:10 ` Vincent Mailhol
2026-01-06 22:16 ` Finn Thain
2026-01-07 10:36 ` Geert Uytterhoeven
1 sibling, 2 replies; 13+ messages in thread
From: Vincent Mailhol @ 2026-01-06 20:10 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz, linux-fbdev, dri-devel, linux-kernel,
linux-sh, linux-m68k
On 06/01/2026 at 12:48, Geert Uytterhoeven wrote:
> Hi Vincent,
>
> CC linux-m68k
>
> Thanks for your patch, which is now commit bd710b3da7308cb1
> ("video/logo: move logo selection logic to Kconfig") in fbdev/for-next.
>
> On Thu, 1 Jan 2026 at 16:26, Vincent Mailhol <mailhol@kernel.org> 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.
>
> This may do the wrong thing when booting a multi-platform kernel.
>
>>
>> The only exception is the logo_spe_clut224 which is only used by the
>> Cell processor (found for example in the Playstation 3) [1]. This
>> extra logo uses its own different image which shows up on a separate
>> line just below the normal logo. Because the extra logo uses a
>> different image, it can not be factorized under the custom logo logic.
>>
>> Move all the logo file selection logic to Kbuild (except from the
>> logo_spe_clut224.ppm), this done, clean-up the C code to only leave
>> one entry for each logo type (monochrome, 16-colors and 224-colors).
>>
>> [1] Cell SPE logos
>> Link: https://lore.kernel.org/all/20070710122702.765654000@pademelon.sonytel.be/
>>
>> Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
>
>> --- a/drivers/video/logo/Kconfig
>> +++ b/drivers/video/logo/Kconfig
>
>> @@ -61,6 +63,12 @@ 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
>
> E.g. an m68k multi-platform kernel including Mac support will scare
> non-Mac users into thinking their machine was assimilated by the
> Apple Empire...
>
>> + 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_linux_clut224.ppm"
>> help
>> Takes a path to a 224-color logo in the portable pixmap file
>
>> --- a/drivers/video/logo/logo.c
>> +++ b/drivers/video/logo/logo.c
>> @@ -48,59 +48,21 @@ const struct linux_logo * __ref fb_find_logo(int depth)
>> if (nologo || logos_freed)
>> return NULL;
>>
>> - if (depth >= 1) {
>> #ifdef CONFIG_LOGO_LINUX_MONO
>> - /* Generic Linux logo */
>> + if (depth >= 1)
>> logo = &logo_linux_mono;
>> #endif
>> -#ifdef CONFIG_LOGO_SUPERH_MONO
>> - /* SuperH Linux logo */
>> - logo = &logo_superh_mono;
>> -#endif
>> - }
>>
>> - if (depth >= 4) {
>> #ifdef CONFIG_LOGO_LINUX_VGA16
>> - /* Generic Linux logo */
>> + if (depth >= 4)
>> logo = &logo_linux_vga16;
>> #endif
>> -#ifdef CONFIG_LOGO_SUPERH_VGA16
>> - /* SuperH Linux logo */
>> - logo = &logo_superh_vga16;
>> -#endif
>> - }
>>
>> - if (depth >= 8) {
>> #ifdef CONFIG_LOGO_LINUX_CLUT224
>> - /* Generic Linux logo */
>> + if (depth >= 8)
>> logo = &logo_linux_clut224;
>> #endif
>> -#ifdef CONFIG_LOGO_DEC_CLUT224
>> - /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
>> - logo = &logo_dec_clut224;
>> -#endif
>> -#ifdef CONFIG_LOGO_MAC_CLUT224
>> - /* Macintosh Linux logo on m68k */
>> - if (MACH_IS_MAC)
>
> MACH_IS_MAC can be a runtime check.
OK. I missed this.
I think there are two options to fix this:
1. Keep CONFIG_LOGO_MAC_CLUT224 untouched
2. Remove logo_mac_clut224.ppm
The first option is less controversial but I would like to ask you what
you think about removing the logo_mac_clut224 file.
Here, we are speaking of the Macintosh 68k which ended sales in 1995,
right? So the user base should be rather small, I guess.
And people who still want the custom MAC logo would still be able to add
CONFIG_LOGO_MAC_CLUT224="path/to/logo_mac_clut224.ppm"
to their config to restore the old behaviour anyway.
My choice would go more toward the removal option but what do you think?
>> - logo = &logo_mac_clut224;
>> -#endif
>> -#ifdef CONFIG_LOGO_PARISC_CLUT224
>> - /* PA-RISC Linux logo */
>> - logo = &logo_parisc_clut224;
>> -#endif
>> -#ifdef CONFIG_LOGO_SGI_CLUT224
>> - /* SGI Linux logo on MIPS/MIPS64 */
>> - logo = &logo_sgi_clut224;
>> -#endif
>> -#ifdef CONFIG_LOGO_SUN_CLUT224
>> - /* Sun Linux logo */
>> - logo = &logo_sun_clut224;
>> -#endif
>> -#ifdef CONFIG_LOGO_SUPERH_CLUT224
>> - /* SuperH Linux logo */
>> - logo = &logo_superh_clut224;
>> -#endif
>> - }
>> +
>> return logo;
>> }
>> EXPORT_SYMBOL_GPL(fb_find_logo);
Yours sincerely,
Vincent Mailhol
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-06 20:10 ` Vincent Mailhol
@ 2026-01-06 22:16 ` Finn Thain
2026-01-07 10:36 ` Geert Uytterhoeven
1 sibling, 0 replies; 13+ messages in thread
From: Finn Thain @ 2026-01-06 22:16 UTC (permalink / raw)
To: Vincent Mailhol
Cc: Geert Uytterhoeven, Helge Deller, Greg Kroah-Hartman,
Yoshinori Sato, Rich Felker, John Paul Adrian Glaubitz,
linux-fbdev, dri-devel, linux-kernel, linux-sh, linux-m68k
On Tue, 6 Jan 2026, Vincent Mailhol wrote:
> >
> > MACH_IS_MAC can be a runtime check.
>
> OK. I missed this.
>
You can use "qemu-system-m68k -M q800 ..." to run the code you're
interested in.
$ qemu-system-m68k -M q800 -g 800x600x16
qemu-system-m68k: unknown display mode: width 800, height 600, depth 16
Available modes:
640x480x1
640x480x2
640x480x4
640x480x8
640x480x24
800x600x1
800x600x2
800x600x4
800x600x8
800x600x24
1152x870x1
1152x870x2
1152x870x4
1152x870x8
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-06 20:10 ` Vincent Mailhol
2026-01-06 22:16 ` Finn Thain
@ 2026-01-07 10:36 ` Geert Uytterhoeven
2026-01-07 12:20 ` Helge Deller
1 sibling, 1 reply; 13+ messages in thread
From: Geert Uytterhoeven @ 2026-01-07 10:36 UTC (permalink / raw)
To: Vincent Mailhol
Cc: Helge Deller, Greg Kroah-Hartman, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz, linux-fbdev, dri-devel, linux-kernel,
linux-sh, linux-m68k
Hi Vincent,
On Tue, 6 Jan 2026 at 21:10, Vincent Mailhol <mailhol@kernel.org> wrote:
> On 06/01/2026 at 12:48, Geert Uytterhoeven wrote:
> > Thanks for your patch, which is now commit bd710b3da7308cb1
> > ("video/logo: move logo selection logic to Kconfig") in fbdev/for-next.
> >
> > On Thu, 1 Jan 2026 at 16:26, Vincent Mailhol <mailhol@kernel.org> 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.
> >
> > This may do the wrong thing when booting a multi-platform kernel.
> >
> >>
> >> The only exception is the logo_spe_clut224 which is only used by the
> >> Cell processor (found for example in the Playstation 3) [1]. This
> >> extra logo uses its own different image which shows up on a separate
> >> line just below the normal logo. Because the extra logo uses a
> >> different image, it can not be factorized under the custom logo logic.
> >>
> >> Move all the logo file selection logic to Kbuild (except from the
> >> logo_spe_clut224.ppm), this done, clean-up the C code to only leave
> >> one entry for each logo type (monochrome, 16-colors and 224-colors).
> >>
> >> [1] Cell SPE logos
> >> Link: https://lore.kernel.org/all/20070710122702.765654000@pademelon.sonytel.be/
> >>
> >> Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
> >
> >> --- a/drivers/video/logo/Kconfig
> >> +++ b/drivers/video/logo/Kconfig
> >
> >> @@ -61,6 +63,12 @@ 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
> >
> > E.g. an m68k multi-platform kernel including Mac support will scare
> > non-Mac users into thinking their machine was assimilated by the
> > Apple Empire...
> >
> >> + 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_linux_clut224.ppm"
> >> help
> >> Takes a path to a 224-color logo in the portable pixmap file
> >
> >> --- a/drivers/video/logo/logo.c
> >> +++ b/drivers/video/logo/logo.c
> >> @@ -48,59 +48,21 @@ const struct linux_logo * __ref fb_find_logo(int depth)
> >> if (nologo || logos_freed)
> >> return NULL;
> >>
> >> - if (depth >= 1) {
> >> #ifdef CONFIG_LOGO_LINUX_MONO
> >> - /* Generic Linux logo */
> >> + if (depth >= 1)
> >> logo = &logo_linux_mono;
> >> #endif
> >> -#ifdef CONFIG_LOGO_SUPERH_MONO
> >> - /* SuperH Linux logo */
> >> - logo = &logo_superh_mono;
> >> -#endif
> >> - }
> >>
> >> - if (depth >= 4) {
> >> #ifdef CONFIG_LOGO_LINUX_VGA16
> >> - /* Generic Linux logo */
> >> + if (depth >= 4)
> >> logo = &logo_linux_vga16;
> >> #endif
> >> -#ifdef CONFIG_LOGO_SUPERH_VGA16
> >> - /* SuperH Linux logo */
> >> - logo = &logo_superh_vga16;
> >> -#endif
> >> - }
> >>
> >> - if (depth >= 8) {
> >> #ifdef CONFIG_LOGO_LINUX_CLUT224
> >> - /* Generic Linux logo */
> >> + if (depth >= 8)
> >> logo = &logo_linux_clut224;
> >> #endif
> >> -#ifdef CONFIG_LOGO_DEC_CLUT224
> >> - /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
> >> - logo = &logo_dec_clut224;
> >> -#endif
> >> -#ifdef CONFIG_LOGO_MAC_CLUT224
> >> - /* Macintosh Linux logo on m68k */
> >> - if (MACH_IS_MAC)
> >
> > MACH_IS_MAC can be a runtime check.
>
> OK. I missed this.
>
> I think there are two options to fix this:
>
> 1. Keep CONFIG_LOGO_MAC_CLUT224 untouched
> 2. Remove logo_mac_clut224.ppm
>
> The first option is less controversial but I would like to ask you what
> you think about removing the logo_mac_clut224 file.
>
> Here, we are speaking of the Macintosh 68k which ended sales in 1995,
> right? So the user base should be rather small, I guess.
Yes, the user base is small.
BTW, the only reason you don't have this issue with MACH_DECSTATION and
the various SGI_IP* options is that MIPS does not support multi-platform
kernels.
> And people who still want the custom MAC logo would still be able to add
>
> CONFIG_LOGO_MAC_CLUT224="path/to/logo_mac_clut224.ppm"
LOGO_LINUX_CLUT224_FILE ;-)
> to their config to restore the old behaviour anyway.
>
> My choice would go more toward the removal option but what do you think?
I am not too attached to keeping the dynamic behavior for the Mac logo,
I just wanted to point out the impact.
I expect most people who care about logos (in products) just have their
own custom out-of-tree code. As fb_find_logo() and the underlying
infrastructure still exists, I don't expect them to have too much
trouble forward porting that to newer kernels.
What do other people think?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v2 6/6] video/logo: move logo selection logic to Kconfig
2026-01-07 10:36 ` Geert Uytterhoeven
@ 2026-01-07 12:20 ` Helge Deller
0 siblings, 0 replies; 13+ messages in thread
From: Helge Deller @ 2026-01-07 12:20 UTC (permalink / raw)
To: Geert Uytterhoeven, Vincent Mailhol
Cc: Greg Kroah-Hartman, Rich Felker, John Paul Adrian Glaubitz,
linux-fbdev, dri-devel, linux-kernel, linux-sh, linux-m68k
On 1/7/26 11:36, Geert Uytterhoeven wrote:
> Hi Vincent,
>
> On Tue, 6 Jan 2026 at 21:10, Vincent Mailhol <mailhol@kernel.org> wrote:
>> On 06/01/2026 at 12:48, Geert Uytterhoeven wrote:
>>> Thanks for your patch, which is now commit bd710b3da7308cb1
>>> ("video/logo: move logo selection logic to Kconfig") in fbdev/for-next.
>>>
>>> On Thu, 1 Jan 2026 at 16:26, Vincent Mailhol <mailhol@kernel.org> 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.
>>>
>>> This may do the wrong thing when booting a multi-platform kernel.
>>>
>>>>
>>>> The only exception is the logo_spe_clut224 which is only used by the
>>>> Cell processor (found for example in the Playstation 3) [1]. This
>>>> extra logo uses its own different image which shows up on a separate
>>>> line just below the normal logo. Because the extra logo uses a
>>>> different image, it can not be factorized under the custom logo logic.
>>>>
>>>> Move all the logo file selection logic to Kbuild (except from the
>>>> logo_spe_clut224.ppm), this done, clean-up the C code to only leave
>>>> one entry for each logo type (monochrome, 16-colors and 224-colors).
>>>>
>>>> [1] Cell SPE logos
>>>> Link: https://lore.kernel.org/all/20070710122702.765654000@pademelon.sonytel.be/
>>>>
>>>> Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
>>>
>>>> --- a/drivers/video/logo/Kconfig
>>>> +++ b/drivers/video/logo/Kconfig
>>>
>>>> @@ -61,6 +63,12 @@ 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
>>>
>>> E.g. an m68k multi-platform kernel including Mac support will scare
>>> non-Mac users into thinking their machine was assimilated by the
>>> Apple Empire...
>>>
>>>> + 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_linux_clut224.ppm"
>>>> help
>>>> Takes a path to a 224-color logo in the portable pixmap file
>>>
>>>> --- a/drivers/video/logo/logo.c
>>>> +++ b/drivers/video/logo/logo.c
>>>> @@ -48,59 +48,21 @@ const struct linux_logo * __ref fb_find_logo(int depth)
>>>> if (nologo || logos_freed)
>>>> return NULL;
>>>>
>>>> - if (depth >= 1) {
>>>> #ifdef CONFIG_LOGO_LINUX_MONO
>>>> - /* Generic Linux logo */
>>>> + if (depth >= 1)
>>>> logo = &logo_linux_mono;
>>>> #endif
>>>> -#ifdef CONFIG_LOGO_SUPERH_MONO
>>>> - /* SuperH Linux logo */
>>>> - logo = &logo_superh_mono;
>>>> -#endif
>>>> - }
>>>>
>>>> - if (depth >= 4) {
>>>> #ifdef CONFIG_LOGO_LINUX_VGA16
>>>> - /* Generic Linux logo */
>>>> + if (depth >= 4)
>>>> logo = &logo_linux_vga16;
>>>> #endif
>>>> -#ifdef CONFIG_LOGO_SUPERH_VGA16
>>>> - /* SuperH Linux logo */
>>>> - logo = &logo_superh_vga16;
>>>> -#endif
>>>> - }
>>>>
>>>> - if (depth >= 8) {
>>>> #ifdef CONFIG_LOGO_LINUX_CLUT224
>>>> - /* Generic Linux logo */
>>>> + if (depth >= 8)
>>>> logo = &logo_linux_clut224;
>>>> #endif
>>>> -#ifdef CONFIG_LOGO_DEC_CLUT224
>>>> - /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
>>>> - logo = &logo_dec_clut224;
>>>> -#endif
>>>> -#ifdef CONFIG_LOGO_MAC_CLUT224
>>>> - /* Macintosh Linux logo on m68k */
>>>> - if (MACH_IS_MAC)
>>>
>>> MACH_IS_MAC can be a runtime check.
>>
>> OK. I missed this.
>>
>> I think there are two options to fix this:
>>
>> 1. Keep CONFIG_LOGO_MAC_CLUT224 untouched
>> 2. Remove logo_mac_clut224.ppm
>>
>> The first option is less controversial but I would like to ask you what
>> you think about removing the logo_mac_clut224 file.
>>
>> Here, we are speaking of the Macintosh 68k which ended sales in 1995,
>> right? So the user base should be rather small, I guess.
>
> Yes, the user base is small.
>
> BTW, the only reason you don't have this issue with MACH_DECSTATION and
> the various SGI_IP* options is that MIPS does not support multi-platform
> kernels.
>
>> And people who still want the custom MAC logo would still be able to add
>>
>> CONFIG_LOGO_MAC_CLUT224="path/to/logo_mac_clut224.ppm"
>
> LOGO_LINUX_CLUT224_FILE ;-)
>
>> to their config to restore the old behaviour anyway.
>>
>> My choice would go more toward the removal option but what do you think?
>
> I am not too attached to keeping the dynamic behavior for the Mac logo,
> I just wanted to point out the impact.
> I expect most people who care about logos (in products) just have their
> own custom out-of-tree code. As fb_find_logo() and the underlying
> infrastructure still exists, I don't expect them to have too much
> trouble forward porting that to newer kernels.
>
> What do other people think?
This is about a small visible icon. It's not some relevant feature.
So, I think it's unfortunate that the patch then drops the specific mac logo.
But adding additional coding and complexity to simply make this logo
visible for such a small user base IMHO does not justify the effort.
Helge
^ permalink raw reply [flat|nested] 13+ messages in thread