]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm: renesas: Extend RZ/G2L supported KMS formats
authorKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Sun, 30 Mar 2025 10:23:53 +0000 (11:23 +0100)
committerBiju Das <biju.das.jz@bp.renesas.com>
Mon, 7 Apr 2025 06:30:01 +0000 (07:30 +0100)
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 VSPD 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+renesas@ideasonboard.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Link: https://lore.kernel.org/r/20250330102357.56010-3-biju.das.jz@bp.renesas.com
drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c

index 1a428ab3c4248e93e98c75ce213f9c7fd7705690..55a97691e9b25866396f9c201ed9559b26e9ab60 100644 (file)
 
 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,
        }
 };