Re: [PATCH RFC v3 0/3] Add splash DRM client
Mario Limonciello <[email protected]> Mon, 11 May 2026 20:59:14 -0500
| Newsgroups | org.kernel.vger.linux-embedded,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 5/10/26 16:29, Francesco Valla wrote: > Hello, > > this is the third (and hopefully last) RFC version for the DRM-based > splash screen. > > Motivation behind the work can be found in v1 [0]; in a nutshell, the > splash DRM client can draw a splashscreen using: > > - the BMP image supplied by the EFI BGRT; > - a BMP image loaded as firmware (either built-in or loaded from the > filesystem); > - a colored background. > > This revision greatly simplifies the image seletion logic; now the EFI > BGRT is always used as first source if enabled, with a fallback to BMP > image loaded as firmware and then to a plain color. > > Sanity checks on the EFI BGRT image have been borrowed from the efifb > driver. More complete splash providers (e.g.: Plymouth) have an > extensive management of platform-specific quirks, but I don't think it > would be reasonable to introduce such complexity here. > > Additional notes: > - Rotation is still not managed (and probably won't?). > - Support for tiled screens is untested. > - Plain color and BMP sources were tested on QEMU, Beagleplay and > i.MX93 FRDM. > - EFI BGRT support was tested using QEMU+OVMF. > > Thank you in advance for any feedback. Unfortunately I found that I couldn't compile with my normal Kconfig. ERROR: modpost: "bgrt_tab" [drivers/gpu/drm/clients/drm_client_lib.ko] undefined! ERROR: modpost: "bgrt_image_size" [drivers/gpu/drm/clients/drm_client_lib.ko] undefined! make[2]: *** [scripts/Makefile.modpost:147: Module.symvers] Error 1 make[1]: *** [/home/supermario/src/linux/Makefile:2091: modpost] Error 2 make: *** [Makefile:248: __sub-make] Error 2 ❮ grep ^CONFIG_DRM .config CONFIG_DRM=y CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_DRAW=y CONFIG_DRM_CLIENT=y CONFIG_DRM_CLIENT_LIB=m CONFIG_DRM_CLIENT_SELECTION=m CONFIG_DRM_CLIENT_SETUP=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 CONFIG_DRM_CLIENT_SPLASH=y CONFIG_DRM_CLIENT_SPLASH_BACKGROUND_COLOR=0x000000 CONFIG_DRM_CLIENT_SPLASH_SRC_BGRT=y CONFIG_DRM_CLIENT_SPLASH_BMP_SUPPORT=y CONFIG_DRM_CLIENT_DEFAULT_SPLASH=y CONFIG_DRM_CLIENT_DEFAULT="splash" CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_DISPLAY_HELPER=m CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y CONFIG_DRM_DISPLAY_DP_HELPER=y CONFIG_DRM_DISPLAY_DSC_HELPER=y CONFIG_DRM_DISPLAY_HDCP_HELPER=y CONFIG_DRM_DISPLAY_HDMI_CEC_NOTIFIER_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y CONFIG_DRM_TTM=m CONFIG_DRM_EXEC=m CONFIG_DRM_BUDDY=m CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_GEM_SHMEM_HELPER=m CONFIG_DRM_SUBALLOC_HELPER=m CONFIG_DRM_SCHED=m CONFIG_DRM_PANEL_BACKLIGHT_QUIRKS=m CONFIG_DRM_PRIVACY_SCREEN=y CONFIG_DRM_AMDGPU=m CONFIG_DRM_AMDGPU_CIK=y CONFIG_DRM_AMDGPU_USERPTR=y CONFIG_DRM_AMD_ISP=y CONFIG_DRM_AMD_ACP=y CONFIG_DRM_AMD_DC=y CONFIG_DRM_AMD_DC_FP=y CONFIG_DRM_AMD_SECURE_DISPLAY=y CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y CONFIG_DRM_PANEL=y CONFIG_DRM_SYSFB_HELPER=m CONFIG_DRM_SIMPLEDRM=m CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_ACCEL=y CONFIG_DRM_ACCEL_AMDXDNA=m CONFIG_DRM_ACCEL_HABANALABS=m CONFIG_DRM_ACCEL_IVPU=m CONFIG_DRM_ACCEL_QAIC=m ❮ grep BGRT .config CONFIG_ACPI_BGRT=y CONFIG_DRM_CLIENT_SPLASH_SRC_BGRT=y > > Best regards, > Francesco > > [0] https://lore.kernel.org/all/[email protected] > > Signed-off-by: Francesco Valla <[email protected]> > --- > Changes in v3: > - Simplified the image selection and management logic, with direct > fallback from EFI BGRT to MP as firmware > - Used new drm_draw_can_convert_from_xrgb8888() API > - Added proper get_unaligned_ calls for EFI BGRT access > - Fixed Kconfig dependencies > - Link to v2: https://lore.kernel.org/r/[email protected] > > Changes in v2: > - Moved from raw dump to BMP format for static image source > - Removed support for configurable message > - Removed support for progress bar > - Added EFI BGRT as image source > Link to v1: https://lore.kernel.org/r/[email protected] > > To: Maarten Lankhorst <[email protected]> > To: Maxime Ripard <[email protected]> > To: Thomas Zimmermann <[email protected]> > To: David Airlie <[email protected]> > To: Simona Vetter <[email protected]> > To: Francesco Valla <[email protected]> > To: Jonathan Corbet <[email protected]> > To: Shuah Khan <[email protected]> > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > > --- > Francesco Valla (3): > drm: client: add splash client > MAINTAINERS: add entry for DRM splash client > drm: docs: remove bootsplash from TODO > > Documentation/gpu/todo.rst | 17 - > MAINTAINERS | 7 + > drivers/gpu/drm/clients/Kconfig | 63 +- > drivers/gpu/drm/clients/Makefile | 1 + > drivers/gpu/drm/clients/drm_client_internal.h | 9 + > drivers/gpu/drm/clients/drm_client_setup.c | 8 + > drivers/gpu/drm/clients/drm_splash.c | 932 ++++++++++++++++++++++++++ > 7 files changed, 1019 insertions(+), 18 deletions(-) > --- > base-commit: afaa0a477099cb7256e26fe11289c753a225ac97 > change-id: 20251026-drm_client_splash-e10d7d663e7f > > Best regards, > -- > Francesco Valla <[email protected]> >