diff options
| author | Thomas Zimmermann <tzimmermann@suse.de> | 2026-09-11 14:44:03 +0200 |
|---|---|---|
| committer | Thomas Zimmermann <tzimmermann@suse.de> | 2026-09-17 09:16:31 +0200 |
| commit | c442e5afc4cc66ad16ebaa974ccb16f54fdf2470 (patch) | |
| tree | 0b1b48def86bdd896ef09fe16bbca7986654edae /drivers | |
| parent | c2dd7240f55a75b9b523bb6e900ef2e3fa2fde1d (diff) | |
drm/panic: Restrict to primary planes
Restrict panic handling to primary displays. Overlays and cursors
should not display panic output. If there are exceptions, they can
be registered by the driver itself.
v3:
- also update drm_panic_is_enabled() (Sashiko)
- still do some testing when unregistering (Sashiko)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patch.msgid.link/20260911124540.279841-11-tzimmermann@suse.de
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/drm_panic.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c index 809d51ad78a8..522ea990a2e9 100644 --- a/drivers/gpu/drm/drm_panic.c +++ b/drivers/gpu/drm/drm_panic.c @@ -1059,9 +1059,13 @@ bool drm_panic_is_enabled(struct drm_device *dev) if (!dev->mode_config.num_total_plane) return false; - drm_for_each_plane(plane, dev) - if (plane->helper_private && plane->helper_private->get_scanout_buffer) - return true; + drm_for_each_plane(plane, dev) { + if (plane->type != DRM_PLANE_TYPE_PRIMARY) + continue; + if (!plane->helper_private || !plane->helper_private->get_scanout_buffer) + continue; + return true; + } return false; } EXPORT_SYMBOL(drm_panic_is_enabled); @@ -1079,6 +1083,8 @@ void drm_panic_register(struct drm_device *dev) return; drm_for_each_plane(plane, dev) { + if (plane->type != DRM_PLANE_TYPE_PRIMARY) + continue; if (!plane->helper_private || !plane->helper_private->get_scanout_buffer) continue; plane->kmsg_panic.dump = drm_panic; @@ -1106,6 +1112,8 @@ void drm_panic_unregister(struct drm_device *dev) return; drm_for_each_plane(plane, dev) { + if (plane->type != DRM_PLANE_TYPE_PRIMARY) + continue; if (!plane->helper_private || !plane->helper_private->get_scanout_buffer) continue; kmsg_dump_unregister(&plane->kmsg_panic); |
