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 v3 04/13] drm: renesas: rzg2l_mipi_dsi: Add support for DSI PWRRDY
Date: Thu, 27 Aug 2026 12:28:45 +0200	[thread overview]
Message-ID: <apARXewkGWRwEpf2@tom-desktop> (raw)
In-Reply-To: <20260826174854.199139-5-biju.das.jz@bp.renesas.com>

Hi Biju,
Thanks for your patch.

On Wed, Aug 26, 2026 at 06:48:38PM +0100, Biju wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
> 
> The register for controlling power to the DSI region is in the SYSC
> (System Controller) block. Add support for controlling the DSI PWRRDY
> signal so the driver can efficiently manage power to the DSI region.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3:
>  * Updated powerseq API names.
> v1->v2:
>  * Switched to power sequence for handling pwrrdy signal.
>  * Dropped header file regmap.h and mfd/syscon.h
>  * Added header file pwrseq/consumer.h
> ---
>  .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c    | 38 +++++++++++++++++++
>  1 file changed, 38 insertions(+)
> 
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> index d67e1230b70c..7df5f4a4161b 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> @@ -18,6 +18,7 @@
>  #include <linux/of_graph.h>
>  #include <linux/platform_device.h>
>  #include <linux/pm_runtime.h>
> +#include <linux/pwrseq/consumer.h>
>  #include <linux/reset.h>
>  #include <linux/slab.h>
>  #include <linux/units.h>
> @@ -63,6 +64,7 @@ struct rzg2l_mipi_dsi_hw_info {
>  	unsigned long max_dclk;
>  	u16 activation_dly;
>  	u8 features;
> +	bool pwrrdy;
>  };
>  
>  struct rzv2h_dsi_mode_calc {
> @@ -87,6 +89,8 @@ struct rzg2l_mipi_dsi {
>  	struct clk *vclk;
>  	struct clk *lpclk;
>  
> +	struct pwrseq_desc *pwrseq;
> +
>  	enum mipi_dsi_pixel_format format;
>  	unsigned int num_data_lanes;
>  	unsigned int lanes;
> @@ -1396,6 +1400,36 @@ static const struct dev_pm_ops rzg2l_mipi_pm_ops = {
>   * Probe & Remove
>   */
>  
> +static void rzg2l_mipi_dsi_pwrrdy_off(void *data)
> +{
> +	pwrseq_disable(data);
> +}
> +
> +static int rzg2l_mipi_dsi_pwrrdy_init(struct rzg2l_mipi_dsi *dsi)
> +{
> +	int ret;
> +
> +	if (!dsi->info->pwrrdy)

Maybe better to introduce a new feature flag like:

	RZ_MIPI_DSI_FEATURE_PWRRDY

And drop bool pwrrdy from rzg2l_mipi_dsi_hw_info?

> +		return 0;
> +
> +	dsi->pwrseq = devm_pwrseq_get(dsi->dev, "dsi-pwrrdy");
> +	if (IS_ERR(dsi->pwrseq)) {
> +		/*
> +		 * This platform requires a sequencer. If we can't get it, we
> +		 * must return the error (including -EPROBE_DEFER to wait for
> +		 * the provider to appear)
> +		 */
> +		return dev_err_probe(dsi->dev, PTR_ERR(dsi->pwrseq),
> +				     "Failed to get required power sequencer\n");
> +	}
> +
> +	ret = pwrseq_enable(dsi->pwrseq);
> +	if (ret)
> +		return ret;
> +
> +	return devm_add_action_or_reset(dsi->dev, rzg2l_mipi_dsi_pwrrdy_off, dsi->pwrseq);

I think we can drop devm_add_action_or_reset() as devm_pwrseq_get()
already register devm_pwrseq_put() -> pwrseq_put() which already
call pwrseq_disable() if desc->powered_on.

Then we can drop rzg2l_mipi_dsi_pwrrdy_off().

Kind regards,
Tommaso

> +}
> +
>  static int rzg2l_mipi_dsi_probe(struct platform_device *pdev)
>  {
>  	unsigned int num_data_lanes;
> @@ -1454,6 +1488,10 @@ static int rzg2l_mipi_dsi_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, dsi);
>  
> +	ret = rzg2l_mipi_dsi_pwrrdy_init(dsi);
> +	if (ret)
> +		return ret;
> +
>  	pm_runtime_enable(dsi->dev);
>  
>  	ret = pm_runtime_resume_and_get(dsi->dev);
> -- 
> 2.43.0
> 

  reply	other threads:[~2026-08-27 10:29 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-26 17:48 [PATCH v3 00/13] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
2026-08-26 17:48 ` [PATCH v3 01/13] drm: renesas: rzg2l_mipi_dsi: Add dphyctrl0_init_val to hw_info Biju
2026-08-26 17:48 ` [PATCH v3 02/13] drm: renesas: rzg2l_mipi_dsi: Add activation_dly " Biju
2026-08-26 17:48 ` [PATCH v3 03/13] drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info struct Biju
2026-08-27  9:59   ` Tommaso Merciai
2026-08-26 17:48 ` [PATCH v3 04/13] drm: renesas: rzg2l_mipi_dsi: Add support for DSI PWRRDY Biju
2026-08-27 10:28   ` Tommaso Merciai [this message]
2026-08-28  7:48     ` Biju Das
2026-08-26 17:48 ` [PATCH v3 05/13] drm: renesas: rzg2l_mipi_dsi: Add RZ/G3L MIPI DSI support Biju
2026-08-27  9:54   ` Tommaso Merciai
2026-08-26 17:48 ` [PATCH v3 06/13] drm: renesas: rz-du: Add RZ/G3L (R9A08G046) DU support Biju
2026-08-27  8:12   ` Tommaso Merciai
2026-08-27  9:33     ` Tommaso Merciai
2026-08-28  7:53       ` Biju Das
2026-08-26 17:48 ` [PATCH v3 07/13] drm: renesas: rz-du: Add support for RZ/G3L LVDS encoder Biju
2026-08-31  9:16   ` Philipp Zabel
2026-09-29 14:29     ` Biju Das
2026-08-26 17:48 ` [PATCH v3 08/13] arm64: dts: renesas: r9a08g046: Add fcpvd node Biju
2026-08-27 10:35   ` Tommaso Merciai
2026-09-08 13:04     ` Geert Uytterhoeven
2026-08-26 17:48 ` [PATCH v3 09/13] arm64: dts: renesas: r9a08g046: Add vspd node Biju
2026-08-27 10:39   ` Tommaso Merciai
2026-09-08 13:04     ` Geert Uytterhoeven
2026-08-26 17:48 ` [PATCH v3 10/13] arm64: dts: renesas: r9a08g046: Add DU and DSI nodes Biju
2026-08-27 12:58   ` Tommaso Merciai
2026-09-08 13:04     ` Geert Uytterhoeven
2026-08-26 17:48 ` [PATCH v3 11/13] arm64: dts: renesas: r9a08g046: Add LVDS node Biju
2026-08-27 13:32   ` Tommaso Merciai
2026-09-08 13:05   ` Geert Uytterhoeven
2026-08-26 17:48 ` [PATCH v3 12/13] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
2026-09-08 13:25   ` Geert Uytterhoeven
2026-09-29 17:24     ` Biju Das
2026-08-26 17:48 ` [PATCH v3 13/13] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju
2026-09-08 13:31   ` Geert Uytterhoeven
2026-09-09  2:57     ` Biju Das
2026-09-09  7:43       ` Geert Uytterhoeven
2026-09-09  8:06         ` Biju Das

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=apARXewkGWRwEpf2@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.