| 0a8bc1d0 | 10-Nov-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/client: log: Implement struct drm_client_funcs.restore
Restore the log client's output when the DRM core invokes the restore callback. Follow the existing behavior of fbdev emulation wrt. the va
drm/client: log: Implement struct drm_client_funcs.restore
Restore the log client's output when the DRM core invokes the restore callback. Follow the existing behavior of fbdev emulation wrt. the value of the force parameter.
If force is false, acquire the DRM master lock and reprogram the display. This is the case when the user-space compositor exits and the DRM core transfers the display back to the in-kernel client. This also enables drm_log output during reboot and shutdown.
If force is true, reprogram without considering the master lock. This overrides the current compositor and prints the log to the screen. In case of system malfunction, users can enter SysRq+v to invoke the emergency error reporting. See Documentation/admin-guide/sysrq.rst for more information.
v2: - s/exists/exits/ in second paragraph of commit description - fix grammar in commit description
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Link: https://patch.msgid.link/20251110154616.539328-4-tzimmermann@suse.de
show more ...
|
| 23166804 | 27-Oct-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/client: Flush client buffers with drm_client_buffer_sync()
Rename drm_client_framebuffer_flush() to drm_cient_buffer_flush() and adapt its callers. The old name was left over from previous namin
drm/client: Flush client buffers with drm_client_buffer_sync()
Rename drm_client_framebuffer_flush() to drm_cient_buffer_flush() and adapt its callers. The old name was left over from previous naming conventions.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>> Tested-by: Francesco Valla <francesco@valla.it> Link: https://patch.msgid.link/20251027121042.143588-8-tzimmermann@suse.de
show more ...
|
| c2707e0f | 27-Oct-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/client: Create client buffers with drm_client_buffer_create_dumb()
Rename drm_client_framebuffer_create() to drm_client_buffer_create_dump() and adapt callers. The new name reflects the function
drm/client: Create client buffers with drm_client_buffer_create_dumb()
Rename drm_client_framebuffer_create() to drm_client_buffer_create_dump() and adapt callers. The new name reflects the function's purpose. Using dumb buffers is the easiest way for creating a GEM buffer in a drivers- independent way.
There's also drm_client_buffer_create(), which creates the client buffer from a preexisting buffer object. This helper can be exported for drivers that create their own GEM buffer object.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Tested-by: Francesco Valla <francesco@valla.it> Link: https://patch.msgid.link/20251027121042.143588-7-tzimmermann@suse.de
show more ...
|
| 52a02339 | 09-Oct-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/log: Add free callback
Free the client memory in the client free callback. Also move the debugging output into the free callback: drm_client_release() puts the reference on the DRM device, so po
drm/log: Add free callback
Free the client memory in the client free callback. Also move the debugging output into the free callback: drm_client_release() puts the reference on the DRM device, so pointers to the device should be considered dangling afterwards.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>> Link: https://lore.kernel.org/r/20251009132006.45834-4-tzimmermann@suse.de
show more ...
|
| 33ba21e9 | 09-Oct-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/log: Do not hold lock across drm_client_release()
When calling drm_client_release(), the client is already quiescent. Internal locks should therefore be dropped before the caller releases the cl
drm/log: Do not hold lock across drm_client_release()
When calling drm_client_release(), the client is already quiescent. Internal locks should therefore be dropped before the caller releases the client.
In the case of the DRM log, concurrency originates from the console or from client events. The console has been unregistered in the previous line. The caller of the unregister callback, drm_log_client_unregister(), holds clientlist_mutex from struct drm_device to protect against concurrent client events. It is therefore safe to release the client without holding locks.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>> Link: https://lore.kernel.org/r/20251009132006.45834-3-tzimmermann@suse.de
show more ...
|
| 5395e09c | 26-Feb-2025 |
Marcos Paulo de Souza <mpdesouza@suse.com> |
printk: Rename console_start to console_resume
The intent of console_start was to resume a previously suspended console, so rename it accordingly.
Signed-off-by: Marcos Paulo de Souza <mpdesouza@su
printk: Rename console_start to console_resume
The intent of console_start was to resume a previously suspended console, so rename it accordingly.
Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com> Reviewed-by: Petr Mladek <pmladek@suse.com> Reviewed-by: John Ogness <john.ogness@linutronix.de> Link: https://lore.kernel.org/r/20250226-printk-renaming-v1-4-0b878577f2e6@suse.com [pmladek@suse.com: Fixed typo in the commit message. Updated also new drm_log.c.] Signed-off-by: Petr Mladek <pmladek@suse.com>
show more ...
|
| 322a00ef | 12-Dec-2024 |
Arnd Bergmann <arnd@arndb.de> |
drm/log: select CONFIG_FONT_SUPPORT
Without fonts, this fails to link:
drivers/gpu/drm/clients/drm_log.o: in function `drm_log_init_client': drm_log.c:(.text+0x3d4): undefined reference to `get_def
drm/log: select CONFIG_FONT_SUPPORT
Without fonts, this fails to link:
drivers/gpu/drm/clients/drm_log.o: in function `drm_log_init_client': drm_log.c:(.text+0x3d4): undefined reference to `get_default_font'
Select this, like the other users do.
Fixes: f7b42442c4ac ("drm/log: Introduce a new boot logger to draw the kmsg on the screen") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241212154003.1313437-1-arnd@kernel.org
show more ...
|
| bc0e01b5 | 12-Dec-2024 |
Jocelyn Falempe <jfalempe@redhat.com> |
drm/client: Fix drm client endless Kconfig loop
if DRM_CLIENT_SELECTION is enabled, and none of the client is, the "Default DRM Client" choice is empty, and this makes Kconfig goes into an infinite
drm/client: Fix drm client endless Kconfig loop
if DRM_CLIENT_SELECTION is enabled, and none of the client is, the "Default DRM Client" choice is empty, and this makes Kconfig goes into an infinite loop of:
Default DRM Client choice[1-0?]: 0 Default DRM Client choice[1-0?]: 0 Default DRM Client choice[1-0?]: 0 ....
So only allow the choice if at least one of the client is selected.
Fixes: f7b42442c4ac ("drm/log: Introduce a new boot logger to draw the kmsg on the screen") Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/dri-devel/20241204160014.1171469-1-jfalempe@redhat.com/T/#md78853bba8904fd7614073f280f721d13ab0b432 Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Tested-by: Dan Carpenter <dan.carpenter@linaro.org> Acked-by: Simona Vetter <simona.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20241212091153.1592096-1-jfalempe@redhat.com
show more ...
|
| 8a4b913d | 04-Dec-2024 |
Jocelyn Falempe <jfalempe@redhat.com> |
drm/log: Add integer scaling support
Add a module parameter, to increase the font size for HiDPI screen. Even with CONFIG_FONT_TER16x32, it can still be a bit small to read. In this case, adding drm
drm/log: Add integer scaling support
Add a module parameter, to increase the font size for HiDPI screen. Even with CONFIG_FONT_TER16x32, it can still be a bit small to read. In this case, adding drm_log.scale=2 to your kernel command line will double the character size.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20241204160014.1171469-7-jfalempe@redhat.com
show more ...
|
| cd41b448 | 04-Dec-2024 |
Jocelyn Falempe <jfalempe@redhat.com> |
drm/log: Implement suspend/resume
Normally the console is already suspended when the graphic driver suspend callback is called, but if the parameter no_console_suspend is set, it might still be acti
drm/log: Implement suspend/resume
Normally the console is already suspended when the graphic driver suspend callback is called, but if the parameter no_console_suspend is set, it might still be active. So call console_stop()/console_start() in the suspend/resume callbacks, to make sure it won't try to write to the framebuffer while the graphic driver is suspended.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Reviewed-by: John Ogness <john.ogness@linutronix.de> Acked-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20241204160014.1171469-6-jfalempe@redhat.com
show more ...
|
| 25e2c2a3 | 04-Dec-2024 |
Jocelyn Falempe <jfalempe@redhat.com> |
drm/log: Color the timestamp, to improve readability
Color the timesamp prefix, similar to dmesg.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@su
drm/log: Color the timestamp, to improve readability
Color the timesamp prefix, similar to dmesg.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20241204160014.1171469-5-jfalempe@redhat.com
show more ...
|
| eb30b445 | 04-Dec-2024 |
Jocelyn Falempe <jfalempe@redhat.com> |
drm/log: Do not draw if drm_master is taken
When userspace takes drm_master, the drm_client buffer is no more visible, so drm_log shouldn't waste CPU cycle to draw on it.
Signed-off-by: Jocelyn Fal
drm/log: Do not draw if drm_master is taken
When userspace takes drm_master, the drm_client buffer is no more visible, so drm_log shouldn't waste CPU cycle to draw on it.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20241204160014.1171469-4-jfalempe@redhat.com
show more ...
|