From: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>

The RZ/G2L driver utilises the VSPD to read data from input sources.

The rzg2l_du_kms component lists a restricted subset of the capabilities
of the VSPD which prevents additional formats from being used for
display planes.

The supported display plane formats are mapped in rzg2l_du_vsp_formats[].

Extend the rzg2l_du_format_infos[] table with the corresponding mappings
between the supported DRM formats and the formats exposed by the VSP in
rzg2l_du_vsp_formats, maintaining the same ordering in both tables.

The RPF module on VSDP supports various format conversion and send the
image data to BRS(Blend ROP Sub Unit) for further processing.

Signed-off-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
Signed-off-by: Biju Das <biju.das...@bp.renesas.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad...@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
v1->v2:
 * Updated commit description.
 * Collected tags
 * Dropped bpp entries.
---
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 117 ++++++++++++++++++-
 1 file changed, 113 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c 
b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
index 1a428ab3c424..55a97691e9b2 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
@@ -36,13 +36,37 @@
 
 static const struct rzg2l_du_format_info rzg2l_du_format_infos[] = {
        {
-               .fourcc = DRM_FORMAT_XRGB8888,
-               .v4l2 = V4L2_PIX_FMT_XBGR32,
+               .fourcc = DRM_FORMAT_RGB332,
+               .v4l2 = V4L2_PIX_FMT_RGB332,
                .planes = 1,
                .hsub = 1,
        }, {
-               .fourcc = DRM_FORMAT_ARGB8888,
-               .v4l2 = V4L2_PIX_FMT_ABGR32,
+               .fourcc = DRM_FORMAT_ARGB4444,
+               .v4l2 = V4L2_PIX_FMT_ARGB444,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_XRGB4444,
+               .v4l2 = V4L2_PIX_FMT_XRGB444,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_ARGB1555,
+               .v4l2 = V4L2_PIX_FMT_ARGB555,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_XRGB1555,
+               .v4l2 = V4L2_PIX_FMT_XRGB555,
+               .planes = 1,
+       }, {
+               .fourcc = DRM_FORMAT_RGB565,
+               .v4l2 = V4L2_PIX_FMT_RGB565,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_BGR888,
+               .v4l2 = V4L2_PIX_FMT_RGB24,
                .planes = 1,
                .hsub = 1,
        }, {
@@ -50,6 +74,91 @@ static const struct rzg2l_du_format_info 
rzg2l_du_format_infos[] = {
                .v4l2 = V4L2_PIX_FMT_BGR24,
                .planes = 1,
                .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_BGRA8888,
+               .v4l2 = V4L2_PIX_FMT_ARGB32,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_BGRX8888,
+               .v4l2 = V4L2_PIX_FMT_XRGB32,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_ARGB8888,
+               .v4l2 = V4L2_PIX_FMT_ABGR32,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_XRGB8888,
+               .v4l2 = V4L2_PIX_FMT_XBGR32,
+               .planes = 1,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_UYVY,
+               .v4l2 = V4L2_PIX_FMT_UYVY,
+               .planes = 1,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YUYV,
+               .v4l2 = V4L2_PIX_FMT_YUYV,
+               .planes = 1,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YVYU,
+               .v4l2 = V4L2_PIX_FMT_YVYU,
+               .planes = 1,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_NV12,
+               .v4l2 = V4L2_PIX_FMT_NV12M,
+               .planes = 2,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_NV21,
+               .v4l2 = V4L2_PIX_FMT_NV21M,
+               .planes = 2,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_NV16,
+               .v4l2 = V4L2_PIX_FMT_NV16M,
+               .planes = 2,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_NV61,
+               .v4l2 = V4L2_PIX_FMT_NV61M,
+               .planes = 2,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YUV420,
+               .v4l2 = V4L2_PIX_FMT_YUV420M,
+               .planes = 3,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YVU420,
+               .v4l2 = V4L2_PIX_FMT_YVU420M,
+               .planes = 3,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YUV422,
+               .v4l2 = V4L2_PIX_FMT_YUV422M,
+               .planes = 3,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YVU422,
+               .v4l2 = V4L2_PIX_FMT_YVU422M,
+               .planes = 3,
+               .hsub = 2,
+       }, {
+               .fourcc = DRM_FORMAT_YUV444,
+               .v4l2 = V4L2_PIX_FMT_YUV444M,
+               .planes = 3,
+               .hsub = 1,
+       }, {
+               .fourcc = DRM_FORMAT_YVU444,
+               .v4l2 = V4L2_PIX_FMT_YVU444M,
+               .planes = 3,
+               .hsub = 1,
        }
 };
 
-- 
2.43.0

Reply via email to