RE: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-06-02 Thread Biju Das
Hi Laurent,

Thanks for the feedback.

> Subject: Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support
> 
> Hi Biju,
> 
> On Thu, Jun 01, 2023 at 12:08:44PM +, Biju Das wrote:
> > > Subject: Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support
> > >
> > > Hi Biju,
> > >
> > > Thank you for the patch.
> > >
> > > This is a partial review, because the driver is big, and because
> > > some changes in v10 will (hopefully) simplify the code and make
> > > review easier.
> >
> > I agree v10 will simplify the code as I have do clean-ups based on
> > your review commnet.
> >
> > > On Tue, May 02, 2023 at 11:09:11AM +0100, Biju Das wrote:
> > > > The LCD controller is composed of Frame Compression Processor
> > > > (FCPVD), Video Signal Processor (VSPD), and Display Unit (DU).
> > > >
> > > > It has DPI/DSI interfaces and supports a maximum resolution of
> > > > 1080p along with 2 RPFs to support the blending of two picture
> > > > layers and raster operations (ROPs).
> > > >
> > > > The DU module is connected to VSPD. Add RZ/G2L DU support for
> > > > RZ/G2L alike SoCs.
> > > >
> > > > Signed-off-by: Biju Das 
> > > > ---
> > > > Ref:
> > > >
> > > > v8->v9:
> > > >  * Dropped reset_control_assert() from error patch for
> rzg2l_du_crtc_get() as
> > > >suggested by Philipp Zabel.
> > > > v7->v8:
> > > >  * Dropped RCar du lib and created RZ/G2L DU DRM driver by
> creating rz_du folder.
> > > >  * Updated KConfig and Makefile.
> > > > v6->v7:
> > > >  * Split DU lib and  RZ/G2L du driver as separate patch series as
> > > >DU support added to more platforms based on RZ/G2L alike SoCs.
> > > >  * Rebased to latest drm-tip.
> > > >  * Added patch #2 for binding support for RZ/V2L DU
> > > >  * Added patch #4 for driver support for RZ/V2L DU
> > > >  * Added patch #5 for SoC DTSI support for RZ/G2L DU
> > > >  * Added patch #6 for SoC DTSI support for RZ/V2L DU
> > > >  * Added patch #7 for Enabling DU on SMARC EVK based on
> RZ/{G2L,V2L} SoCs.
> > > >  * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC
> SoC.
> > > > ---
> > > >  drivers/gpu/drm/renesas/Kconfig   |   1 +
> > > >  drivers/gpu/drm/renesas/Makefile  |   1 +
> > > >  drivers/gpu/drm/renesas/rz-du/Kconfig |  20 +
> > > >  drivers/gpu/drm/renesas/rz-du/Makefile|   8 +
> > > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 714
> > > >   drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |
> > > > 99 +++  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 188 +
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  89 ++
> > > > .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  | 112 +++
> > > > .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  28 +
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 770
> > > > ++  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
> > > > |  43 +  drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h |  67 ++
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 430 ++
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  94 +++
> > > >  15 files changed, 2664 insertions(+)  create mode 100644
> > > > drivers/gpu/drm/renesas/rz-du/Kconfig
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> > > >  create mode 100644
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> > > >  create mode 100644
> > > > drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
> > > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
> 
> [snip]
> 
> > 

Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-06-02 Thread Laurent Pinchart
Hi Biju,

On Thu, Jun 01, 2023 at 12:08:44PM +, Biju Das wrote:
> > Subject: Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support
> > 
> > Hi Biju,
> > 
> > Thank you for the patch.
> > 
> > This is a partial review, because the driver is big, and because some
> > changes in v10 will (hopefully) simplify the code and make review
> > easier.
> 
> I agree v10 will simplify the code as I have do clean-ups based on your
> review commnet.
> 
> > On Tue, May 02, 2023 at 11:09:11AM +0100, Biju Das wrote:
> > > The LCD controller is composed of Frame Compression Processor (FCPVD),
> > > Video Signal Processor (VSPD), and Display Unit (DU).
> > >
> > > It has DPI/DSI interfaces and supports a maximum resolution of 1080p
> > > along with 2 RPFs to support the blending of two picture layers and
> > > raster operations (ROPs).
> > >
> > > The DU module is connected to VSPD. Add RZ/G2L DU support for RZ/G2L
> > > alike SoCs.
> > >
> > > Signed-off-by: Biju Das 
> > > ---
> > > Ref:
> > >
> > > v8->v9:
> > >  * Dropped reset_control_assert() from error patch for 
> > > rzg2l_du_crtc_get() as
> > >suggested by Philipp Zabel.
> > > v7->v8:
> > >  * Dropped RCar du lib and created RZ/G2L DU DRM driver by creating rz_du 
> > > folder.
> > >  * Updated KConfig and Makefile.
> > > v6->v7:
> > >  * Split DU lib and  RZ/G2L du driver as separate patch series as
> > >DU support added to more platforms based on RZ/G2L alike SoCs.
> > >  * Rebased to latest drm-tip.
> > >  * Added patch #2 for binding support for RZ/V2L DU
> > >  * Added patch #4 for driver support for RZ/V2L DU
> > >  * Added patch #5 for SoC DTSI support for RZ/G2L DU
> > >  * Added patch #6 for SoC DTSI support for RZ/V2L DU
> > >  * Added patch #7 for Enabling DU on SMARC EVK based on RZ/{G2L,V2L} SoCs.
> > >  * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC SoC.
> > > ---
> > >  drivers/gpu/drm/renesas/Kconfig   |   1 +
> > >  drivers/gpu/drm/renesas/Makefile  |   1 +
> > >  drivers/gpu/drm/renesas/rz-du/Kconfig |  20 +
> > >  drivers/gpu/drm/renesas/rz-du/Makefile|   8 +
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 714 
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |  99 +++
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 188 +
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  89 ++
> > >  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  | 112 +++
> > >  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  28 +
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 770 ++
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h  |  43 +
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h |  67 ++
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 430 ++
> > >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  94 +++
> > >  15 files changed, 2664 insertions(+)
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
> > >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h

[snip]

> > > diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c 
> > > b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
> > > new file mode 100644
> > > index ..d61d433d72e6
> > > --- /dev/null
> > > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
> > > @@ -0,0 +1,714 @@

[snip]

> > > +/* 
> > > -
> > > + * CRTC Functions
> > > + */
> 

RE: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-06-01 Thread Biju Das
Hi Laurent,

Thanks for the feedback.

> Subject: Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support
> 
> Hi Biju,
> 
> Thank you for the patch.
> 
> This is a partial review, because the driver is big, and because some
> changes in v10 will (hopefully) simplify the code and make review
> easier.

I agree v10 will simplify the code as I have do clean-ups based on your
review commnet.

> 
> On Tue, May 02, 2023 at 11:09:11AM +0100, Biju Das wrote:
> > The LCD controller is composed of Frame Compression Processor (FCPVD),
> > Video Signal Processor (VSPD), and Display Unit (DU).
> >
> > It has DPI/DSI interfaces and supports a maximum resolution of 1080p
> > along with 2 RPFs to support the blending of two picture layers and
> > raster operations (ROPs).
> >
> > The DU module is connected to VSPD. Add RZ/G2L DU support for RZ/G2L
> > alike SoCs.
> >
> > Signed-off-by: Biju Das 
> > ---
> > Ref:
> >
> > v8->v9:
> >  * Dropped reset_control_assert() from error patch for
> rzg2l_du_crtc_get() as
> >suggested by Philipp Zabel.
> > v7->v8:
> >  * Dropped RCar du lib and created RZ/G2L DU DRM driver by creating
> rz_du folder.
> >  * Updated KConfig and Makefile.
> > v6->v7:
> >  * Split DU lib and  RZ/G2L du driver as separate patch series as
> >DU support added to more platforms based on RZ/G2L alike SoCs.
> >  * Rebased to latest drm-tip.
> >  * Added patch #2 for binding support for RZ/V2L DU
> >  * Added patch #4 for driver support for RZ/V2L DU
> >  * Added patch #5 for SoC DTSI support for RZ/G2L DU
> >  * Added patch #6 for SoC DTSI support for RZ/V2L DU
> >  * Added patch #7 for Enabling DU on SMARC EVK based on RZ/{G2L,V2L}
> SoCs.
> >  * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC SoC.
> > ---
> >  drivers/gpu/drm/renesas/Kconfig   |   1 +
> >  drivers/gpu/drm/renesas/Makefile  |   1 +
> >  drivers/gpu/drm/renesas/rz-du/Kconfig |  20 +
> >  drivers/gpu/drm/renesas/rz-du/Makefile|   8 +
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 714 
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |  99 +++
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 188 +
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  89 ++
> >  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  | 112 +++
> >  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  28 +
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 770
> ++
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h  |  43 +
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h |  67 ++
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 430 ++
> >  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  94 +++
> >  15 files changed, 2664 insertions(+)
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
> >  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
> >
> > diff --git a/drivers/gpu/drm/renesas/Kconfig
> b/drivers/gpu/drm/renesas/Kconfig
> > index 3777dad17f81..21862a8ef710 100644
> > --- a/drivers/gpu/drm/renesas/Kconfig
> > +++ b/drivers/gpu/drm/renesas/Kconfig
> > @@ -1,4 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> >
> >  source "drivers/gpu/drm/renesas/rcar-du/Kconfig"
> > +source "drivers/gpu/drm/renesas/rz-du/Kconfig"
> >  source "drivers/gpu/drm/renesas/shmobile/Kconfig"
> > diff --git a/drivers/gpu/drm/renesas/Makefile
> b/drivers/gpu/drm/renesas/Makefile
> > index ec0e89e7a592..b8d8bc53967f 100644
> > --- a/drivers/gpu/drm/renesas/Makefile
> > +++ b/drivers/gpu/drm/renesas/Makefile
> > @@ -1,4 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> >
> >  obj-y += rcar-du/
> > +obj-y += rz-du/
> >  obj-$(CONFI

Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-05-29 Thread Laurent Pinchart
Hi Biju,

Thank you for the patch.

This is a partial review, because the driver is big, and because some
changes in v10 will (hopefully) simplify the code and make review
easier.

On Tue, May 02, 2023 at 11:09:11AM +0100, Biju Das wrote:
> The LCD controller is composed of Frame Compression Processor (FCPVD),
> Video Signal Processor (VSPD), and Display Unit (DU).
> 
> It has DPI/DSI interfaces and supports a maximum resolution of 1080p
> along with 2 RPFs to support the blending of two picture layers and
> raster operations (ROPs).
> 
> The DU module is connected to VSPD. Add RZ/G2L DU support for RZ/G2L
> alike SoCs.
> 
> Signed-off-by: Biju Das 
> ---
> Ref:
>  
> https://lore.kernel.org/linux-renesas-soc/os0pr01mb5922717e4ccfe07f3c25fbc986...@os0pr01mb5922.jpnprd01.prod.outlook.com/#t
> v8->v9:
>  * Dropped reset_control_assert() from error patch for rzg2l_du_crtc_get() as
>suggested by Philipp Zabel.
> v7->v8:
>  * Dropped RCar du lib and created RZ/G2L DU DRM driver by creating rz_du 
> folder.
>  * Updated KConfig and Makefile.
> v6->v7:
>  * Split DU lib and  RZ/G2L du driver as separate patch series as
>DU support added to more platforms based on RZ/G2L alike SoCs.
>  * Rebased to latest drm-tip.
>  * Added patch #2 for binding support for RZ/V2L DU
>  * Added patch #4 for driver support for RZ/V2L DU
>  * Added patch #5 for SoC DTSI support for RZ/G2L DU
>  * Added patch #6 for SoC DTSI support for RZ/V2L DU
>  * Added patch #7 for Enabling DU on SMARC EVK based on RZ/{G2L,V2L} SoCs.
>  * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC SoC.
> ---
>  drivers/gpu/drm/renesas/Kconfig   |   1 +
>  drivers/gpu/drm/renesas/Makefile  |   1 +
>  drivers/gpu/drm/renesas/rz-du/Kconfig |  20 +
>  drivers/gpu/drm/renesas/rz-du/Makefile|   8 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 714 
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |  99 +++
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 188 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  89 ++
>  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  | 112 +++
>  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  28 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 770 ++
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h  |  43 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h |  67 ++
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 430 ++
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  94 +++
>  15 files changed, 2664 insertions(+)
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
> 
> diff --git a/drivers/gpu/drm/renesas/Kconfig b/drivers/gpu/drm/renesas/Kconfig
> index 3777dad17f81..21862a8ef710 100644
> --- a/drivers/gpu/drm/renesas/Kconfig
> +++ b/drivers/gpu/drm/renesas/Kconfig
> @@ -1,4 +1,5 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  
>  source "drivers/gpu/drm/renesas/rcar-du/Kconfig"
> +source "drivers/gpu/drm/renesas/rz-du/Kconfig"
>  source "drivers/gpu/drm/renesas/shmobile/Kconfig"
> diff --git a/drivers/gpu/drm/renesas/Makefile 
> b/drivers/gpu/drm/renesas/Makefile
> index ec0e89e7a592..b8d8bc53967f 100644
> --- a/drivers/gpu/drm/renesas/Makefile
> +++ b/drivers/gpu/drm/renesas/Makefile
> @@ -1,4 +1,5 @@
>  # SPDX-License-Identifier: GPL-2.0
>  
>  obj-y += rcar-du/
> +obj-y += rz-du/
>  obj-$(CONFIG_DRM_SHMOBILE) += shmobile/
> diff --git a/drivers/gpu/drm/renesas/rz-du/Kconfig 
> b/drivers/gpu/drm/renesas/rz-du/Kconfig
> new file mode 100644
> index ..90b1bf72e23b
> --- /dev/null
> +++ b/drivers/gpu/drm/renesas/rz-du/Kconfig
> @@ -0,0 +1,20 @@
> +# SPDX-License-Identifier: GPL-2.0
> +config DRM_RZG2L_DU
> + tristate "DRM Support for RZ/G2L Display Unit"
> + depends on DRM && OF
> + depends on ARM64

Does the driver fail to compile on !ARM64 platforms ? If no, I'd drop
this.

> + depends on DRM_RCAR_VSP
> + depends on ARCH_RZG2L || COMPILE_TEST
> + select DRM_KMS_HELPER
> + select DRM_GEM_DMA_HELPER

Alphabetical order please.

> + select VIDEOMODE_HELPERS
> + help
> +   Choose this option if you have an RZ/G2L alike chipset.
> +   If M is selected the m

[PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-05-02 Thread Biju Das
The LCD controller is composed of Frame Compression Processor (FCPVD),
Video Signal Processor (VSPD), and Display Unit (DU).

It has DPI/DSI interfaces and supports a maximum resolution of 1080p
along with 2 RPFs to support the blending of two picture layers and
raster operations (ROPs).

The DU module is connected to VSPD. Add RZ/G2L DU support for RZ/G2L
alike SoCs.

Signed-off-by: Biju Das 
---
Ref:
 
https://lore.kernel.org/linux-renesas-soc/os0pr01mb5922717e4ccfe07f3c25fbc986...@os0pr01mb5922.jpnprd01.prod.outlook.com/#t
v8->v9:
 * Dropped reset_control_assert() from error patch for rzg2l_du_crtc_get() as
   suggested by Philipp Zabel.
v7->v8:
 * Dropped RCar du lib and created RZ/G2L DU DRM driver by creating rz_du 
folder.
 * Updated KConfig and Makefile.
v6->v7:
 * Split DU lib and  RZ/G2L du driver as separate patch series as
   DU support added to more platforms based on RZ/G2L alike SoCs.
 * Rebased to latest drm-tip.
 * Added patch #2 for binding support for RZ/V2L DU
 * Added patch #4 for driver support for RZ/V2L DU
 * Added patch #5 for SoC DTSI support for RZ/G2L DU
 * Added patch #6 for SoC DTSI support for RZ/V2L DU
 * Added patch #7 for Enabling DU on SMARC EVK based on RZ/{G2L,V2L} SoCs.
 * Added patch #8 for Enabling DU on SMARC EVK based on RZ/G2LC SoC.
---
 drivers/gpu/drm/renesas/Kconfig   |   1 +
 drivers/gpu/drm/renesas/Makefile  |   1 +
 drivers/gpu/drm/renesas/rz-du/Kconfig |  20 +
 drivers/gpu/drm/renesas/rz-du/Makefile|   8 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 714 
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h |  99 +++
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 188 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  89 ++
 .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  | 112 +++
 .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  28 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  | 770 ++
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h  |  43 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h |  67 ++
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c  | 430 ++
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h  |  94 +++
 15 files changed, 2664 insertions(+)
 create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
 create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_regs.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h

diff --git a/drivers/gpu/drm/renesas/Kconfig b/drivers/gpu/drm/renesas/Kconfig
index 3777dad17f81..21862a8ef710 100644
--- a/drivers/gpu/drm/renesas/Kconfig
+++ b/drivers/gpu/drm/renesas/Kconfig
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
 source "drivers/gpu/drm/renesas/rcar-du/Kconfig"
+source "drivers/gpu/drm/renesas/rz-du/Kconfig"
 source "drivers/gpu/drm/renesas/shmobile/Kconfig"
diff --git a/drivers/gpu/drm/renesas/Makefile b/drivers/gpu/drm/renesas/Makefile
index ec0e89e7a592..b8d8bc53967f 100644
--- a/drivers/gpu/drm/renesas/Makefile
+++ b/drivers/gpu/drm/renesas/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
 
 obj-y += rcar-du/
+obj-y += rz-du/
 obj-$(CONFIG_DRM_SHMOBILE) += shmobile/
diff --git a/drivers/gpu/drm/renesas/rz-du/Kconfig 
b/drivers/gpu/drm/renesas/rz-du/Kconfig
new file mode 100644
index ..90b1bf72e23b
--- /dev/null
+++ b/drivers/gpu/drm/renesas/rz-du/Kconfig
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: GPL-2.0
+config DRM_RZG2L_DU
+   tristate "DRM Support for RZ/G2L Display Unit"
+   depends on DRM && OF
+   depends on ARM64
+   depends on DRM_RCAR_VSP
+   depends on ARCH_RZG2L || COMPILE_TEST
+   select DRM_KMS_HELPER
+   select DRM_GEM_DMA_HELPER
+   select VIDEOMODE_HELPERS
+   help
+ Choose this option if you have an RZ/G2L alike chipset.
+ If M is selected the module will be called rzg2l-du-drm.
+
+config DRM_RCAR_VSP
+   bool "R-Car DU VSP Compositor Support" if ARM
+   default y if ARM64
+   depends on VIDEO_RENESAS_VSP1
+   help
+ Enable support to expose the R-Car VSP Compositor as KMS planes.
diff --git a/drivers/gpu/drm/renesas/rz-du/Makefile 
b/drivers/gpu/drm/renesas/rz-du/Makefile
new file mode 100644
index ..2cdf3ccd0459
--- /dev/null
+++ b/drivers/gpu/drm/renesas/rz-du/Makefile
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0
+rzg2l-du