So driver knows early if drm_panic will be able to display something on the current scanout buffer. Signed-off-by: Jocelyn Falempe <jfalempe@xxxxxxxxxx> --- drivers/gpu/drm/drm_panic.c | 13 +++++++++++++ include/drm/drm_panic.h | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c index 362a696ec48a..c68167cd4c08 100644 --- a/drivers/gpu/drm/drm_panic.c +++ b/drivers/gpu/drm/drm_panic.c @@ -348,6 +348,19 @@ void drm_panic_unregister(struct drm_device *dev) } EXPORT_SYMBOL(drm_panic_unregister); +/** + * drm_panic_is_format_supported() + * @format: a fourcc color code + * Returns: true if supported, false otherwise. + * + * Check if drm_panic will be able to use this color format. + */ +bool drm_panic_is_format_supported(u32 format) +{ + return drm_fb_convert_from_xrgb8888(0xffffff, format) != 0; +} +EXPORT_SYMBOL(drm_panic_is_format_supported); + /** * drm_panic_init() - Initialize drm-panic subsystem * diff --git a/include/drm/drm_panic.h b/include/drm/drm_panic.h index bcf392b6fa1b..1549c8eb8dcc 100644 --- a/include/drm/drm_panic.h +++ b/include/drm/drm_panic.h @@ -84,6 +84,8 @@ void drm_panic_exit(void); void drm_panic_register(struct drm_device *dev); void drm_panic_unregister(struct drm_device *dev); +bool drm_panic_is_format_supported(u32 format); + #else static inline void drm_panic_init(void) {} @@ -92,6 +94,8 @@ static inline void drm_panic_exit(void) {} static inline void drm_panic_register(struct drm_device *dev) {} static inline void drm_panic_unregister(struct drm_device *dev) {} +bool drm_panic_is_format_supported(u32 format) {return false; } + #endif #endif /* __DRM_PANIC_H__ */ -- 2.43.0