lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <174258396885.1099553.5413524831101034269@ping.linuxembedded.co.uk>
Date: Fri, 21 Mar 2025 19:06:08 +0000
From: Kieran Bingham <kieran.bingham@...asonboard.com>
To: Biju Das <biju.das.jz@...renesas.com>, Laurent Pinchart <laurent.pinchart@...asonboard.com>, linux-renesas-soc@...r.kernel.org, linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org
Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>, Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>, David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>
Subject: RE: [PATCH] drm: renesas: Extend RZ/G2L supported KMS formats

Hi Biju,

Quoting Biju Das (2025-03-21 18:40:50)
> Hi Kieran,
> 
> Thanks for the patch.
> 
> > -----Original Message-----
> > From: Kieran Bingham <kieran.bingham@...asonboard.com>
> > Sent: 21 March 2025 17:22
> > Subject: [PATCH] drm: renesas: Extend RZ/G2L supported KMS formats
> > 
> > From: Kieran Bingham <kieran.bingham+renesas@...asonboard.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
> 
> VSPD
> 
> > 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.
> > 
> > Signed-off-by: Kieran Bingham <kieran.bingham+renesas@...asonboard.com>
> > ---
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 141 ++++++++++++++++++-
> >  1 file changed, 136 insertions(+), 5 deletions(-)
> > 
> > Prior to this patch, kmstest reports all of these formats as supported by the Planes, but using them
> > fails during rzg2l_du_fb_create() as the corresponding format isn't found in rzg2l_du_format_info.
> > 
> > This patch now lets me capture and render pixelformats from the Mali-C55 direct to an attached DSI
> > panel on the Kakip board.
> 
> Previously I got a comment to remove all the formats from this table as DSI supports only 3 formats.

Indeed, I can see that the DSI only supports the three RGB variant
formats, but the RPF of the VPSD is very capable and does the pixel format
conversion for us here as I understand it!


> I agree VSPD has two planes(2 rpf-instances) which supports all these formats.
> 
> Mali-C55(n formats)-->LCDC(VSPD n formats)->DSI(3 formats)-->Panel
> 
> Am I missing anything w.r.to the comment that I received previously.
> Otherwise patch LGTM.
> 

I haven't looked completely, but as long as the VSPD is only configured
to /output/ the RGB formats to the DSI then I think this is fine,

> Cheers,
> Biju

Thanks,

Kieran

> 
> > 
> > Patch tested with kms-tests:
> > 
> > PYTHONPATH=/usr/lib/aarch64-linux-gnu/python3.11/site-packages ./tests/kms-test-formats.py Testing
> > plane formats: SUCCESS
> > 
> > admin@...ip:~/kms-tests$ cat FormatsTest.log U [66.967523] Testing plane formats U [66.975763] Testing
> > connector DSI-1, CRTC 36, mode 720x1280 U [66.978480] Testing format PixelFormat.RGB332 U [70.143998]
> > Testing format PixelFormat.ARGB4444 U [73.357056] Testing format PixelFormat.XRGB4444 U [76.574944]
> > Testing format PixelFormat.ARGB1555 U [79.805636] Testing format PixelFormat.XRGB1555 U [83.016599]
> > Testing format PixelFormat.RGB565 U [86.230362] Testing format PixelFormat.BGR888 U [89.444673]
> > Testing format PixelFormat.RGB888 U [92.677093] Testing format PixelFormat.BGRA8888 U [95.904745]
> > Testing format PixelFormat.BGRX8888 U [99.119926] Testing format PixelFormat.ARGB8888 U [102.350298]
> > Testing format PixelFormat.XRGB8888 U [105.579499] Testing format PixelFormat.UYVY U [108.878654]
> > Testing format PixelFormat.YUYV U [112.176515] Testing format PixelFormat.YVYU U [115.470090] Testing
> > format PixelFormat.NV12 U [118.767513] Testing format PixelFormat.NV21 U [122.065851] Testing format
> > PixelFormat.NV16 U [125.364001] Testing format PixelFormat.NV61 U [128.662145] Testing format
> > PixelFormat.YUV420 U [131.978102] Testing format PixelFormat.YVU420 U [135.292284] Testing format
> > PixelFormat.YUV422 U [138.623485] Testing format PixelFormat.YVU422 U [141.955083] Testing format
> > PixelFormat.YUV444 U [145.336759] Testing format PixelFormat.YVU444 U [148.761832] Test completed
> > successfully
> > 
> > 
> > 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 b1266fbd9598..a5e96f863172 100644
> > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> > @@ -36,8 +36,61 @@
> > 
> >  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,
> > +             .bpp = 8,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_ARGB4444,
> > +             .v4l2 = V4L2_PIX_FMT_ARGB444,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_XRGB4444,
> > +             .v4l2 = V4L2_PIX_FMT_XRGB444,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_ARGB1555,
> > +             .v4l2 = V4L2_PIX_FMT_ARGB555,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_XRGB1555,
> > +             .v4l2 = V4L2_PIX_FMT_XRGB555,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_RGB565,
> > +             .v4l2 = V4L2_PIX_FMT_RGB565,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_BGR888,
> > +             .v4l2 = V4L2_PIX_FMT_RGB24,
> > +             .bpp = 24,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_RGB888,
> > +             .v4l2 = V4L2_PIX_FMT_BGR24,
> > +             .bpp = 24,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_BGRA8888,
> > +             .v4l2 = V4L2_PIX_FMT_ARGB32,
> > +             .bpp = 32,
> > +             .planes = 1,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_BGRX8888,
> > +             .v4l2 = V4L2_PIX_FMT_XRGB32,
> >               .bpp = 32,
> >               .planes = 1,
> >               .hsub = 1,
> > @@ -48,11 +101,89 @@ static const struct rzg2l_du_format_info rzg2l_du_format_infos[] = {
> >               .planes = 1,
> >               .hsub = 1,
> >       }, {
> > -             .fourcc = DRM_FORMAT_RGB888,
> > -             .v4l2 = V4L2_PIX_FMT_BGR24,
> > -             .bpp = 24,
> > +             .fourcc = DRM_FORMAT_XRGB8888,
> > +             .v4l2 = V4L2_PIX_FMT_XBGR32,
> > +             .bpp = 32,
> >               .planes = 1,
> >               .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_UYVY,
> > +             .v4l2 = V4L2_PIX_FMT_UYVY,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YUYV,
> > +             .v4l2 = V4L2_PIX_FMT_YUYV,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YVYU,
> > +             .v4l2 = V4L2_PIX_FMT_YVYU,
> > +             .bpp = 16,
> > +             .planes = 1,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_NV12,
> > +             .v4l2 = V4L2_PIX_FMT_NV12M,
> > +             .bpp = 12,
> > +             .planes = 2,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_NV21,
> > +             .v4l2 = V4L2_PIX_FMT_NV21M,
> > +             .bpp = 12,
> > +             .planes = 2,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_NV16,
> > +             .v4l2 = V4L2_PIX_FMT_NV16M,
> > +             .bpp = 16,
> > +             .planes = 2,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_NV61,
> > +             .v4l2 = V4L2_PIX_FMT_NV61M,
> > +             .bpp = 16,
> > +             .planes = 2,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YUV420,
> > +             .v4l2 = V4L2_PIX_FMT_YUV420M,
> > +             .bpp = 12,
> > +             .planes = 3,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YVU420,
> > +             .v4l2 = V4L2_PIX_FMT_YVU420M,
> > +             .bpp = 12,
> > +             .planes = 3,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YUV422,
> > +             .v4l2 = V4L2_PIX_FMT_YUV422M,
> > +             .bpp = 16,
> > +             .planes = 3,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YVU422,
> > +             .v4l2 = V4L2_PIX_FMT_YVU422M,
> > +             .bpp = 16,
> > +             .planes = 3,
> > +             .hsub = 2,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YUV444,
> > +             .v4l2 = V4L2_PIX_FMT_YUV444M,
> > +             .bpp = 24,
> > +             .planes = 3,
> > +             .hsub = 1,
> > +     }, {
> > +             .fourcc = DRM_FORMAT_YVU444,
> > +             .v4l2 = V4L2_PIX_FMT_YVU444M,
> > +             .bpp = 24,
> > +             .planes = 3,
> > +             .hsub = 1,
> >       }
> >  };
> > 
> > --
> > 2.48.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ