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.
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]>