drm/log: Introduce a new boot logger to draw the kmsg on the screen
authorJocelyn Falempe <jfalempe@redhat.com>
Wed, 4 Dec 2024 15:45:01 +0000 (16:45 +0100)
committerJocelyn Falempe <jfalempe@redhat.com>
Tue, 10 Dec 2024 13:36:53 +0000 (14:36 +0100)
commitf7b42442c4ac142ab5e261858cec48eb6c9c1567
tree8a70fb7869c2384484186d50d0cce8aef15cf051
parent31fa2c1ca0b239f64eaf682f1685bbbd74fc0181
drm/log: Introduce a new boot logger to draw the kmsg on the screen

drm_log is a simple logger that uses the drm_client API to print the
kmsg boot log on the screen. This is not a full replacement to fbcon,
as it will only print the kmsg. It will never handle user input, or a
terminal because this is better done in userspace.

Design decisions:
 * It uses the drm_client API, so it should work on all drm drivers
   from the start.
 * It doesn't scroll the message, that way it doesn't need to redraw
   the whole screen for each new message.
   It also means it doesn't have to keep drawn messages in memory, to
   redraw them when scrolling.
 * It uses the new non-blocking console API, so it should work well
   with PREEMPT_RT.

This patch also adds a Kconfig menu to select the drm client to use.
It can be overwritten on the kernel command line with:
drm_client_lib.active=log or drm_client_lib.active=fbdev

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Reviewed-by: John Ogness <john.ogness@linutronix.de> # console API
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20241204160014.1171469-3-jfalempe@redhat.com
drivers/gpu/drm/clients/Kconfig
drivers/gpu/drm/clients/Makefile
drivers/gpu/drm/clients/drm_client_internal.h
drivers/gpu/drm/clients/drm_client_setup.c
drivers/gpu/drm/clients/drm_log.c [new file with mode: 0644]