linux/drivers/gpu/drm
Thomas Zimmermann 0a8bc1d03e 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
2025-11-25 08:43:48 +01:00
..
adp drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
amd Merge tag 'drm-misc-next-2025-11-05-1' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-11-07 12:41:26 +10:00
arm drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
armada drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
aspeed
ast drm/ast: Handle framebuffer from dma-buf 2025-11-10 16:02:13 +01:00
atmel-hlcdc drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
bridge drm/bridge: simple: add ASL CS5263 DP-to-HDMI bridge 2025-11-24 17:54:56 +01:00
ci drm/ci: Uprev igt 2025-07-04 11:06:38 -07:00
clients drm/client: log: Implement struct drm_client_funcs.restore 2025-11-25 08:43:48 +01:00
display Merge tag 'drm-misc-next-2025-11-05-1' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-11-07 12:41:26 +10:00
etnaviv drm/etnaviv: add HWDB entry for GC8000 Nano Ultra VIP r6205 2025-11-04 16:44:40 +01:00
exynos drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
fsl-dcu drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
gma500 drm/gma500: use drm_crtc_vblank_crtc() 2025-11-10 13:24:24 +02:00
gud drm/gud: rearrange gud_probe() to prepare for function splitting 2025-10-24 19:36:45 +01:00
hisilicon drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
hyperv drm/hyperv: include drm_print.h where needed 2025-11-04 14:37:15 +02:00
i915 Merge tag 'drm-misc-next-2025-11-05-1' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-11-07 12:41:26 +10:00
imagination drm/imagination: Fix reference to devm_platform_get_and_ioremap_resource() 2025-10-31 14:34:53 +00:00
imx drm/imx/ipuv3: Fix dumb-buffer allocation for non-RGB formats 2025-11-13 14:56:17 +01:00
ingenic drm/ingenic: crtc: Switch to ingenic_drm_get_new_priv_state() 2025-10-06 13:59:22 +02:00
kmb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
lib
lima drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
logicvc drm/logicvc: Switch to drm_atomic_get_new_crtc_state() 2025-10-06 13:59:15 +02:00
loongson drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
mcde drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
mediatek drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
meson drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
mgag200 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
msm drm/msm: use drm_crtc_vblank_waitqueue() 2025-11-10 15:41:38 +02:00
mxsfb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
nouveau drm/nouveau: fully define nvfw_hs_load_header_v2 2025-11-12 12:53:11 -05:00
nova DRM Rust changes for v6.18 2025-09-17 16:13:49 +10:00
omapdrm drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
panel drm/edp-panel: Add touchscreen panel used by Lenovo X13s 2025-11-24 09:10:10 -08:00
panfrost drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
panthor drm/panthor: Fix potential memleak of vma structure 2025-11-10 15:10:33 +00:00
pl111 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
qxl drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
radeon Merge tag 'drm-misc-next-2025-11-05-1' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-11-07 12:41:26 +10:00
renesas drm: rcar-du: fix incorrect return in rcar_du_crtc_cleanup() 2025-11-05 11:17:26 +02:00
rockchip drm/rockchip: vop2: Use OVL_LAYER_SEL configuration instead of use win_mask calculate used layers 2025-11-15 00:36:09 +01:00
scheduler drm/sched: Replace use of system_wq with system_percpu_wq 2025-11-07 09:09:03 +01:00
sitronix drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
solomon drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
sprd
sti drm/sti: hdmi: add bridge before attaching 2025-11-03 13:04:55 +01:00
stm drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
sun4i drm/sun4i: Nuke mixer pointer from layer code 2025-11-12 17:18:25 +08:00
sysfb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
tegra drm/tegra: Add NVJPG driver 2025-11-14 19:41:55 +01:00
tests drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
tidss drm/tidss: Move OLDI mode validation to OLDI bridge mode_valid hook 2025-11-12 11:54:39 +02:00
tilcdc drm/tilcdc: Switch to drm_atomic_get_new_crtc_state() 2025-10-06 13:59:19 +02:00
tiny drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
ttm drm/ttm: Fix @alloc_flags description 2025-11-06 10:35:47 +00:00
tve200 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
tyr rust: drm: Introduce the Tyr driver for Arm Mali GPUs 2025-09-11 12:20:03 +00:00
udl drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
v3d drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vboxvideo drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vc4 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vgem drm/vgem-fence: Fix potential deadlock on release 2025-10-06 15:05:17 +02:00
virtio drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vkms drm/vkms: Fix use after frees on error paths 2025-11-04 11:46:03 +01:00
vmwgfx drm/vmwgfx: use drm_crtc_vblank_crtc() 2025-11-10 13:24:07 +02:00
xe Merge tag 'drm-misc-next-2025-11-05-1' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-11-07 12:41:26 +10:00
xen drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
xlnx drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb() 2025-09-29 17:50:54 +02:00
Kconfig hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
Kconfig.debug
Makefile drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_atomic.c drm/atomic: WARN about invalid drm_foo_get_state() usage 2025-10-28 21:45:14 +02:00
drm_atomic_helper.c drm/atomic: use drm_crtc_vblank_waitqueue() 2025-11-10 15:41:30 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm/drm_crtc: Introduce sharpness strength property 2025-10-30 15:38:04 +02:00
drm_auth.c
drm_blend.c
drm_bridge.c drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add() 2025-11-03 13:04:55 +01:00
drm_bridge_helper.c
drm_buddy.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_cache.c drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value 2025-07-10 13:07:26 +02:00
drm_client.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_client_event.c drm/client: Pass force parameter to client restore 2025-11-25 08:43:46 +01:00
drm_client_modeset.c drm/fb-helper: Synchronize dirty worker with vblank 2025-09-16 12:42:52 +02:00
drm_client_sysrq.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_color_mgmt.c drm/color-mgmt: Prepare for RGB332 palettes 2025-08-26 09:54:18 +02:00
drm_connector.c
drm_crtc.c drm/drm_crtc: Introduce sharpness strength property 2025-10-30 15:38:04 +02:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c drm: add debugfs support on per client-id basis 2025-07-04 15:59:06 +02:00
drm_debugfs_crc.c
drm_displayid.c drm/displayid: add quirk to ignore DisplayID checksum errors 2025-11-04 14:49:30 +02:00
drm_displayid_internal.h drm/displayid: add quirk to ignore DisplayID checksum errors 2025-11-04 14:49:30 +02:00
drm_draw.c drm/draw: fix color truncation in drm_draw_fill24 2025-10-14 09:25:10 +02:00
drm_draw_internal.h drm/draw: fix color truncation in drm_draw_fill24 2025-10-14 09:25:10 +02:00
drm_drv.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_dumb_buffers.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_edid.c drm/edid: add 6 bpc quirk to the Sharp LQ116M1JW10 2025-11-06 08:51:21 -08:00
drm_edid_load.c
drm_eld.c
drm_encoder.c
drm_exec.c
drm_fb_dma_helper.c
drm_fb_helper.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_fbdev_dma.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_fbdev_shmem.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_fbdev_ttm.c drm/client: Create client buffers with drm_client_buffer_create_dumb() 2025-10-30 21:01:35 +01:00
drm_file.c drm/client: Pass force parameter to client restore 2025-11-25 08:43:46 +01:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Remove drm_fb_blit() 2025-09-23 15:06:06 +02:00
drm_format_internal.h
drm_fourcc.c drm: Pass pixel_format+modifier directly to drm_get_format_info() 2025-07-16 20:01:13 +03:00
drm_framebuffer.c drm/framebuffer: Switch to drm_atomic_get_new_crtc_state() 2025-10-06 13:59:21 +02:00
drm_gem.c drm/gem: Use vmemdup_array_user in drm_gem_objects_lookup 2025-11-21 08:12:23 +00:00
drm_gem_atomic_helper.c drm/gem-atomic: Reset plane state to NULL if allocation failed 2025-10-26 17:12:58 +01:00
drm_gem_dma_helper.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_gem_framebuffer_helper.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_gem_shmem_helper.c drm/gem-shmem: Compute dumb-buffer sizes with drm_mode_size_dumb() 2025-09-29 13:57:45 +02:00
drm_gem_ttm_helper.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_gem_vram_helper.c drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
drm_gpusvm.c drm/gpusvm, drm/xe: Allow mixed mappings for userptr 2025-10-17 10:25:27 +02:00
drm_gpuvm.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_internal.h drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_ioc32.c
drm_ioctl.c drm: Add DRM prime interface to reassign GEM handle 2025-07-18 08:59:24 +02:00
drm_kms_helper_common.c
drm_lease.c
drm_managed.c
drm_mipi_dbi.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_mipi_dsi.c drm: Add MIPI read_multi func and two write macros 2025-08-14 15:42:26 -07:00
drm_mm.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_mode_config.c
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c drm/client: Remove holds_console_lock parameter from suspend/resume 2025-10-18 17:35:09 +02:00
drm_modeset_lock.c
drm_of.c drm: of: fix documentation reference 2025-08-21 16:21:08 +02:00
drm_pagemap.c drm/pagemap: Allocate folios when possible 2025-08-06 13:34:58 +02:00
drm_panel.c drm/panel: Allow powering on panel follower after panel is enabled 2025-08-25 09:17:49 -07:00
drm_panel_backlight_quirks.c drm: panel-backlight-quirks: Add Steam Deck brightness quirk 2025-09-03 10:23:03 -05:00
drm_panel_orientation_quirks.c
drm_panic.c
drm_panic_qr.rs drm/panic: use `core::ffi::CStr` method names 2025-09-16 09:26:59 +02:00
drm_pci.c
drm_plane.c
drm_plane_helper.c
drm_prime.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_print.c
drm_privacy_screen.c
drm_privacy_screen_x86.c
drm_probe_helper.c drm/probe-helper: put the bridge returned by drm_bridge_chain_get_first_bridge() 2025-07-22 13:01:28 +02:00
drm_property.c
drm_rect.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_suballoc.c
drm_syncobj.c
drm_sysfs.c DRM: Add a new 'boot_display' attribute 2025-09-10 09:35:33 -05:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Increase timeout in drm_wait_one_vblank() 2025-11-07 09:48:35 +01:00
drm_vblank_helper.c drm/vblank: Add CRTC helpers for simple use cases 2025-10-01 08:32:00 +02:00
drm_vblank_work.c drm/vblank: use drm_crtc_vblank_crtc() in workers 2025-11-10 13:22:58 +02:00
drm_vma_manager.c
drm_writeback.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00