[PATCH 1/3] drm/panic: Add drm_panic_is_enabled()
Imre Deak
imre.deak at intel.com
Fri Jul 19 10:18:06 UTC 2024
Hi,
On Wed, Jul 17, 2024 at 10:48:39AM +0200, Jocelyn Falempe wrote:
> It allows to check if the drm device supports drm_panic.
> Prepare the work to have better integration with fbcon and vtconsole.
>
> Signed-off-by: Jocelyn Falempe <jfalempe at redhat.com>
> ---
> drivers/gpu/drm/drm_panic.c | 20 ++++++++++++++++++++
> include/drm/drm_panic.h | 2 ++
> 2 files changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c
> index 948aed00595e..d9a25c2d0a65 100644
> --- a/drivers/gpu/drm/drm_panic.c
> +++ b/drivers/gpu/drm/drm_panic.c
> @@ -703,6 +703,26 @@ static void debugfs_register_plane(struct drm_plane *plane, int index)
> static void debugfs_register_plane(struct drm_plane *plane, int index) {}
> #endif /* CONFIG_DRM_PANIC_DEBUG */
>
> +/**
> + * drm_panic_is_enabled
> + * @dev: the drm device that may supports drm_panic
> + *
> + * returns true if the drm device supports drm_panic
> + */
> +bool drm_panic_is_enabled(struct drm_device *dev)
> +{
> + struct drm_plane *plane;
> +
> + 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;
> + return false;
> +}
> +EXPORT_SYMBOL(drm_panic_is_enabled);
> +
> /**
> * drm_panic_register() - Initialize DRM panic for a device
> * @dev: the drm device on which the panic screen will be displayed.
> diff --git a/include/drm/drm_panic.h b/include/drm/drm_panic.h
> index 73bb3f3d9ed9..c3a358dc3e27 100644
> --- a/include/drm/drm_panic.h
> +++ b/include/drm/drm_panic.h
> @@ -148,11 +148,13 @@ struct drm_scanout_buffer {
>
> #ifdef CONFIG_DRM_PANIC
>
> +bool drm_panic_is_enabled(struct drm_device *dev);
> void drm_panic_register(struct drm_device *dev);
> void drm_panic_unregister(struct drm_device *dev);
>
> #else
>
> +bool drm_panic_is_enabled(struct drm_device *dev) {return false; }
This was moved to drivers/gpu/drm/drm_crtc_internal.h in the applied
version and I can't find that version on the mailing list; imo this kind
of change requires a resend.
Also, the above breaks CONFIG_DRM_PANIC=n builds:
In file included from drivers/gpu/drm/drm_atomic_uapi.c:43:
drivers/gpu/drm/drm_crtc_internal.h:322:6: error: no previous prototype for ‘drm_panic_is_enabled’ [-Werror=missing-prototypes]
322 | bool drm_panic_is_enabled(struct drm_device *dev) {return false; }
Stubs like the above must be an inline function.
> static inline void drm_panic_register(struct drm_device *dev) {}
> static inline void drm_panic_unregister(struct drm_device *dev) {}
>
> --
> 2.45.2
>
More information about the dri-devel
mailing list