This is for further proper invalid drm_format handling before committing the plane state change.
The return value is not yet checked yet, and will be checked in atomic_check in the future. Signed-off-by: Icenowy Zheng <[email protected]> --- drivers/gpu/drm/verisilicon/vs_plane.c | 7 +++++-- drivers/gpu/drm/verisilicon/vs_plane.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/verisilicon/vs_plane.c b/drivers/gpu/drm/verisilicon/vs_plane.c index 2f3953e588a34..df406f565143a 100644 --- a/drivers/gpu/drm/verisilicon/vs_plane.c +++ b/drivers/gpu/drm/verisilicon/vs_plane.c @@ -6,13 +6,14 @@ #include <linux/errno.h> #include <linux/printk.h> +#include <drm/drm_atomic_state_helper.h> #include <drm/drm_fb_dma_helper.h> #include <drm/drm_fourcc.h> #include <drm/drm_gem_dma_helper.h> #include "vs_plane.h" -void drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format) +int drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format) { switch (drm_format) { case DRM_FORMAT_XRGB4444: @@ -62,7 +63,7 @@ void drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format) vs_format->color = VSDC_COLOR_FORMAT_A2R10G10B10; break; default: - pr_warn("Unexpected drm format!\n"); + return -EINVAL; } switch (drm_format) { @@ -101,6 +102,8 @@ void drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format) /* N/A for non-YUV formats */ vs_format->uv_swizzle = false; + + return 0; } dma_addr_t vs_fb_get_dma_addr(struct drm_framebuffer *fb, diff --git a/drivers/gpu/drm/verisilicon/vs_plane.h b/drivers/gpu/drm/verisilicon/vs_plane.h index 41875ea3d66a5..a88cc19f2202e 100644 --- a/drivers/gpu/drm/verisilicon/vs_plane.h +++ b/drivers/gpu/drm/verisilicon/vs_plane.h @@ -63,7 +63,7 @@ struct vs_format { bool uv_swizzle; }; -void drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format); +int drm_format_to_vs_format(u32 drm_format, struct vs_format *vs_format); dma_addr_t vs_fb_get_dma_addr(struct drm_framebuffer *fb, const struct drm_rect *src_rect); -- 2.52.0
