Since all the RGB input formats have the same value for the DATA_FMT
field of the INPUT_FMT register, we can group them when the format is
known to be RGB. Here, we assume that a non-YUV format is RGB, because
the hardware does not support any other colorspace than RGB and YUV.

Pass the full DRM format info structure to check whether the format uses
a YUV colorspace.

Signed-off-by: Paul Kocialkowski <[email protected]>
---
 drivers/gpu/drm/sun4i/sun4i_frontend.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_frontend.c 
b/drivers/gpu/drm/sun4i/sun4i_frontend.c
index c436fa97928f..d0eca4b8784d 100644
--- a/drivers/gpu/drm/sun4i/sun4i_frontend.c
+++ b/drivers/gpu/drm/sun4i/sun4i_frontend.c
@@ -104,16 +104,16 @@ void sun4i_frontend_update_buffer(struct sun4i_frontend 
*frontend,
 }
 EXPORT_SYMBOL(sun4i_frontend_update_buffer);
 
-static int sun4i_frontend_drm_format_to_input_fmt(uint32_t fmt, u32 *val)
+static int
+sun4i_frontend_drm_format_to_input_fmt(const struct drm_format_info *format,
+                                      u32 *val)
 {
-       switch (fmt) {
-       case DRM_FORMAT_XRGB8888:
+       if (!format->is_yuv)
                *val = SUN4I_FRONTEND_INPUT_FMT_DATA_FMT_RGB;
-               return 0;
-
-       default:
+       else
                return -EINVAL;
-       }
+
+       return 0;
 }
 
 static int
@@ -190,8 +190,7 @@ int sun4i_frontend_update_formats(struct sun4i_frontend 
*frontend,
        u32 in_fmt_val, in_mod_val, in_ps_val;
        int ret;
 
-       ret = sun4i_frontend_drm_format_to_input_fmt(format->format,
-                                                    &in_fmt_val);
+       ret = sun4i_frontend_drm_format_to_input_fmt(format, &in_fmt_val);
        if (ret) {
                DRM_DEBUG_DRIVER("Invalid input format\n");
                return ret;
-- 
2.19.2

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to