drm/sun4i: frontend: Determine input format based on colorspace
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Fri, 18 Jan 2019 14:51:15 +0000 (15:51 +0100)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Fri, 18 Jan 2019 18:01:08 +0000 (19:01 +0100)
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.

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

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190118145133.21281-6-paul.kocialkowski@bootlin.com
drivers/gpu/drm/sun4i/sun4i_frontend.c

index dd5af30190990d201eeae5f136ae9289c35b2377..7c7a5ea0cf5826bc2886b06fea32434253f35311 100644 (file)
@@ -108,14 +108,12 @@ static int
 sun4i_frontend_drm_format_to_input_fmt(const struct drm_format_info *format,
                                       u32 *val)
 {
-       switch (format->format) {
-       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