All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
To: Biju <biju.das.au@gmail.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Magnus Damm <magnus.damm@gmail.com>,
	dri-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: Re: [PATCH 08/16] drm: renesas: rz-du: Add RZ/G3L (R9A08G046) DU support
Date: Wed, 8 Jul 2026 19:01:19 +0200	[thread overview]
Message-ID: <ak6CXxb3Rs3PB4Yl@tom-desktop> (raw)
In-Reply-To: <20260704093433.273672-9-biju.das.jz@bp.renesas.com>

Hi Biju,
Thanks for your patch.

On Sat, Jul 04, 2026 at 10:34:18AM +0100, Biju wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
> 
> Add Display Unit support for the Renesas RZ/G3L SoC (R9A08G046). It is
> similar to the one found on RZ/G2L, but has LVDS support.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c  | 22 ++++++++++++++++++-
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h  |  4 ++++
>  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c  |  4 ++++
>  .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.h  |  1 +
>  4 files changed, 30 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> index 3d13f61d3c97..a8d841421a0b 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
> @@ -55,6 +55,24 @@ static const struct rzg2l_du_device_info rzg2l_du_r9a07g044_info = {
>  	.mode_clock_max = 83500,
>  };
>  
> +static const struct rzg2l_du_device_info rzg2l_du_r9a08g046_info = {
> +	.channels_mask = BIT(0),
> +	.routes = {
> +		[RZG2L_DU_OUTPUT_DSI0] = {
> +			.possible_outputs = BIT(0),
> +			.port = 0,
> +		},
> +		[RZG2L_DU_OUTPUT_DPAD0] = {
> +			.possible_outputs = BIT(0),
> +			.port = 1,
> +		},
> +		[RZG2L_DU_OUTPUT_LVDS0] = {
> +			.possible_outputs = BIT(0),
> +			.port = 2,
> +		},
> +	},
> +};
> +
>  static const struct rzg2l_du_device_info rzg2l_du_r9a09g057_info = {
>  	.channels_mask = BIT(0),
>  	.routes = {
> @@ -81,6 +99,7 @@ static const struct rzg2l_du_device_info rzg2l_du_r9a09g077_info = {
>  static const struct of_device_id rzg2l_du_of_table[] = {
>  	{ .compatible = "renesas,r9a07g043u-du", .data = &rzg2l_du_r9a07g043u_info },
>  	{ .compatible = "renesas,r9a07g044-du", .data = &rzg2l_du_r9a07g044_info },
> +	{ .compatible = "renesas,r9a08g046-du", .data = &rzg2l_du_r9a08g046_info },
>  	{ .compatible = "renesas,r9a09g057-du", .data = &rzg2l_du_r9a09g057_info },
>  	{ .compatible = "renesas,r9a09g077-du", .data = &rzg2l_du_r9a09g077_info },
>  	{ /* sentinel */ }
> @@ -92,7 +111,8 @@ const char *rzg2l_du_output_name(enum rzg2l_du_output output)
>  {
>  	static const char * const names[] = {
>  		[RZG2L_DU_OUTPUT_DSI0] = "DSI0",
> -		[RZG2L_DU_OUTPUT_DPAD0] = "DPAD0"
> +		[RZG2L_DU_OUTPUT_DPAD0] = "DPAD0",
> +		[RZG2L_DU_OUTPUT_LVDS0] = "LVDS0"
>  	};
>  
>  	if (output >= ARRAY_SIZE(names))
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> index baf076d69cda..0b86c5a01210 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
> @@ -21,10 +21,12 @@ struct device;
>  struct drm_property;
>  
>  #define RZG2L_DU_FEATURE_DPIO_OE	BIT(0)	/* Has DPIO output enable control */
> +#define RZG2L_DU_FEATURE_SMUX2_DSI_CLK	BIT(1)	/* Per output mux */

This is not needed, we decide to move setting clock duty cycle handling into
encoder driver.

>  
>  enum rzg2l_du_output {
>  	RZG2L_DU_OUTPUT_DSI0,
>  	RZG2L_DU_OUTPUT_DPAD0,
> +	RZG2L_DU_OUTPUT_LVDS0,
>  	RZG2L_DU_OUTPUT_MAX,
>  };
>  
> @@ -61,6 +63,7 @@ struct rzg2l_du_device_info {
>  #define RZG2L_DU_MAX_CRTCS		1
>  #define RZG2L_DU_MAX_VSPS		1
>  #define RZG2L_DU_MAX_DSI		1
> +#define RZG2L_DU_MAX_LVDS		1

This is not used, please remove.

>  
>  struct rzg2l_du_device {
>  	struct device *dev;
> @@ -74,6 +77,7 @@ struct rzg2l_du_device {
>  	unsigned int num_crtcs;
>  
>  	struct rzg2l_du_vsp vsps[RZG2L_DU_MAX_VSPS];
> +	struct drm_bridge *lvds[RZG2L_DU_MAX_LVDS];

Same here.

>  };
>  
>  static inline struct rzg2l_du_device *to_rzg2l_du_device(struct drm_device *dev)
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> index f50d166b764f..7315d437c2ea 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
> @@ -105,6 +105,9 @@ int rzg2l_du_encoder_init(struct rzg2l_du_device  *rcdu,
>  			return -EPROBE_DEFER;
>  	}
>  
> +	if (output == RZG2L_DU_OUTPUT_LVDS0)
> +		rcdu->lvds[output - RZG2L_DU_OUTPUT_LVDS0] = bridge;
> +

Same here.

>  	dev_dbg(rcdu->dev, "initializing encoder %pOF for output %s\n",
>  		enc_node, rzg2l_du_output_name(output));
>  
> @@ -115,6 +118,7 @@ int rzg2l_du_encoder_init(struct rzg2l_du_device  *rcdu,
>  		return PTR_ERR(renc);
>  
>  	renc->output = output;
> +	renc->rcdu = rcdu;

Same.

>  	drm_encoder_helper_add(&renc->base, &rzg2l_du_encoder_helper_funcs);
>  
>  	/* Attach the bridge to the encoder. */
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> index 3e430c1f6132..8b048ca508be 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
> @@ -17,6 +17,7 @@ struct rzg2l_du_device;
>  
>  struct rzg2l_du_encoder {
>  	struct drm_encoder base;
> +	struct rzg2l_du_device *rcdu;

Same.

Thanks.

Kind Regards,
Tommaso

>  	enum rzg2l_du_output output;
>  };
>  
> -- 
> 2.43.0
> 

  reply	other threads:[~2026-07-08 17:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-04  9:34 [PATCH 00/16] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
2026-07-04  9:34 ` [PATCH 01/16] dt-bindings: display: bridge: renesas,dsi: Document RZ/G3L Biju
2026-07-04  9:34   ` [PATCH 01/16] dt-bindings: display: bridge: renesas, dsi: " Biju
2026-07-08  8:29   ` [PATCH 01/16] dt-bindings: display: bridge: renesas,dsi: " Krzysztof Kozlowski
2026-07-08  9:39     ` Biju Das
2026-07-08  9:39       ` [PATCH 01/16] dt-bindings: display: bridge: renesas, dsi: " Biju Das
2026-07-12 15:24       ` [PATCH 01/16] dt-bindings: display: bridge: renesas,dsi: " Krzysztof Kozlowski
2026-07-04  9:34 ` [PATCH 02/16] drm: renesas: rzg2l_mipi_dsi: Add dphyctrl0_init_val to hw_info Biju
2026-07-04  9:34 ` [PATCH 03/16] drm: renesas: rzg2l_mipi_dsi: Add activation_dly " Biju
2026-07-04  9:34 ` [PATCH 04/16] drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info struct Biju
2026-07-04  9:34 ` [PATCH 05/16] drm: renesas: rzg2l_mipi_dsi: Add support for DSI PWRRDY Biju
2026-07-04  9:34 ` [PATCH 06/16] drm: renesas: rzg2l_mipi_dsi: Add RZ/G3L MIPI DSI support Biju
2026-07-04  9:34 ` [PATCH 07/16] dt-bindings: display: renesas,rzg2l-du: Document RZ/G3L SoC Biju
2026-07-04  9:34   ` [PATCH 07/16] dt-bindings: display: renesas, rzg2l-du: " Biju
2026-07-08  8:30   ` [PATCH 07/16] dt-bindings: display: renesas,rzg2l-du: " Krzysztof Kozlowski
2026-07-08  8:38     ` Biju Das
2026-07-08 16:45   ` Tommaso Merciai
2026-07-08 17:12     ` Biju Das
2026-07-04  9:34 ` [PATCH 08/16] drm: renesas: rz-du: Add RZ/G3L (R9A08G046) DU support Biju
2026-07-08 17:01   ` Tommaso Merciai [this message]
2026-07-08 17:16     ` Biju Das
2026-07-04  9:34 ` [PATCH 09/16] dt-bindings: display: bridge: Document Renesas RZ/G3L LVDS encoder Biju
2026-07-04  9:34 ` [PATCH 10/16] drm: renesas: rz-du: Add support for " Biju
2026-07-04  9:34 ` [PATCH 11/16] arm64: dts: renesas: r9a08g046: Add fcpvd node Biju
2026-07-04  9:34 ` [PATCH 12/16] arm64: dts: renesas: r9a08g046: Add vspd node Biju
2026-07-04  9:34 ` [PATCH 13/16] arm64: dts: renesas: r9a08g046: Add DU and DSI nodes Biju
2026-07-04  9:34 ` [PATCH 14/16] arm64: dts: renesas: r9a08g046: Add LVDS node Biju
2026-07-04  9:34 ` [PATCH 15/16] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
2026-07-04  9:34 ` [PATCH 16/16] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ak6CXxb3Rs3PB4Yl@tom-desktop \
    --to=tommaso.merciai.xr@bp.renesas.com \
    --cc=airlied@gmail.com \
    --cc=biju.das.au@gmail.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert+renesas@glider.be \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=magnus.damm@gmail.com \
    --cc=mripard@kernel.org \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.