* [PATCH v3 0/3] Improvements on RZ/G2L MIPI DSI driver
@ 2026-03-30 10:44 Biju
2026-03-30 10:44 ` [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() Biju
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Biju @ 2026-03-30 10:44 UTC (permalink / raw)
To: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter
Cc: Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel,
linux-renesas-soc, linux-kernel, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Hi All,
Enhance the RZ/G2L MIPI DSI driver based on section "34.4.2.1 Reset" of
the RZ/G2L hardware manual Rev.1.50 May 2025. According to this section,
it is required to wait >= 1 msec after deasserting the CMN_RSTB signal,
and writing to DSI PHY timing registers and LINK registers should be done
before deasserting CMN_RSTB.
Additionally, the hardware manual suggests display timing settings should
be done after the HS clock is started.
v2->v3:
* Merged patch#2 and patch#3 to avoid breakage.
* Moved the patch from patch#4 to patch#2.
* Added fixes tag for patch#2.
* Updated commit description for patch#2 and patch#3.
v1->v2:
* Updated commit header and description
* Moved the code from rzg2l_mipi_dsi_dphy_init() to rzg2l_mipi_dsi_startup()
* Moved the check before calling reset_control_deassert(), so that it will be
skipped for RZ/V2H SoC
* Added fixes patch for moving rzg2l_mipi_dsi_set_display_timing()
* Added fixes patch for assert of CMN_RSTB signal
Biju Das (3):
drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing()
drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay
drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal
.../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 34 +++++++++++--------
1 file changed, 19 insertions(+), 15 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() 2026-03-30 10:44 [PATCH v3 0/3] Improvements on RZ/G2L MIPI DSI driver Biju @ 2026-03-30 10:44 ` Biju 2026-04-03 17:45 ` Tommaso Merciai 2026-03-30 10:44 ` [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay Biju 2026-03-30 10:44 ` [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal Biju 2 siblings, 1 reply; 7+ messages in thread From: Biju @ 2026-03-30 10:44 UTC (permalink / raw) To: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter Cc: Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad, Biju Das, stable From: Biju Das <biju.das.jz@bp.renesas.com> The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, requires display timings to be set after the HS clock is started. Move rzg2l_mipi_dsi_set_display_timing() from rzg2l_mipi_dsi_atomic_pre_enable() to rzg2l_mipi_dsi_atomic_enable(), placing it after rzg2l_mipi_dsi_start_hs_clock(). Drop the unused ret variable from rzg2l_mipi_dsi_atomic_pre_enable(). Fixes: 5ce16c169a4c ("drm: renesas: rz-du: Add atomic_pre_enable") Fixes: 7a043f978ed1 ("drm: rcar-du: Add RZ/G2L DSI driver") Cc: stable@vger.kernel.org Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- v2->v3: * No change. v2: * New patch --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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 a87a301326c7..ff95cb9a7de5 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -1025,29 +1025,33 @@ static void rzg2l_mipi_dsi_atomic_pre_enable(struct drm_bridge *bridge, const struct drm_display_mode *mode; struct drm_connector *connector; struct drm_crtc *crtc; - int ret; connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); crtc = drm_atomic_get_new_connector_state(state, connector)->crtc; mode = &drm_atomic_get_new_crtc_state(state, crtc)->adjusted_mode; - ret = rzg2l_mipi_dsi_startup(dsi, mode); - if (ret < 0) - return; - - rzg2l_mipi_dsi_set_display_timing(dsi, mode); + rzg2l_mipi_dsi_startup(dsi, mode); } static void rzg2l_mipi_dsi_atomic_enable(struct drm_bridge *bridge, struct drm_atomic_state *state) { struct rzg2l_mipi_dsi *dsi = bridge_to_rzg2l_mipi_dsi(bridge); + const struct drm_display_mode *mode; + struct drm_connector *connector; + struct drm_crtc *crtc; int ret; ret = rzg2l_mipi_dsi_start_hs_clock(dsi); if (ret < 0) goto err_stop; + connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); + crtc = drm_atomic_get_new_connector_state(state, connector)->crtc; + mode = &drm_atomic_get_new_crtc_state(state, crtc)->adjusted_mode; + + rzg2l_mipi_dsi_set_display_timing(dsi, mode); + ret = rzg2l_mipi_dsi_start_video(dsi); if (ret < 0) goto err_stop_clock; -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() 2026-03-30 10:44 ` [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() Biju @ 2026-04-03 17:45 ` Tommaso Merciai 0 siblings, 0 replies; 7+ messages in thread From: Tommaso Merciai @ 2026-04-03 17:45 UTC (permalink / raw) To: Biju Cc: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad, stable Hi Biju, Thanks for your patch. On Mon, Mar 30, 2026 at 11:44:44AM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.renesas.com> > > The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, > requires display timings to be set after the HS clock is started. Move > rzg2l_mipi_dsi_set_display_timing() from > rzg2l_mipi_dsi_atomic_pre_enable() to rzg2l_mipi_dsi_atomic_enable(), > placing it after rzg2l_mipi_dsi_start_hs_clock(). Drop the unused ret > variable from rzg2l_mipi_dsi_atomic_pre_enable(). > Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Kind Regards, Tommaso > Fixes: 5ce16c169a4c ("drm: renesas: rz-du: Add atomic_pre_enable") > Fixes: 7a043f978ed1 ("drm: rcar-du: Add RZ/G2L DSI driver") > Cc: stable@vger.kernel.org > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > v2->v3: > * No change. > v2: > * New patch > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > 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 a87a301326c7..ff95cb9a7de5 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > @@ -1025,29 +1025,33 @@ static void rzg2l_mipi_dsi_atomic_pre_enable(struct drm_bridge *bridge, > const struct drm_display_mode *mode; > struct drm_connector *connector; > struct drm_crtc *crtc; > - int ret; > > connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); > crtc = drm_atomic_get_new_connector_state(state, connector)->crtc; > mode = &drm_atomic_get_new_crtc_state(state, crtc)->adjusted_mode; > > - ret = rzg2l_mipi_dsi_startup(dsi, mode); > - if (ret < 0) > - return; > - > - rzg2l_mipi_dsi_set_display_timing(dsi, mode); > + rzg2l_mipi_dsi_startup(dsi, mode); > } > > static void rzg2l_mipi_dsi_atomic_enable(struct drm_bridge *bridge, > struct drm_atomic_state *state) > { > struct rzg2l_mipi_dsi *dsi = bridge_to_rzg2l_mipi_dsi(bridge); > + const struct drm_display_mode *mode; > + struct drm_connector *connector; > + struct drm_crtc *crtc; > int ret; > > ret = rzg2l_mipi_dsi_start_hs_clock(dsi); > if (ret < 0) > goto err_stop; > > + connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); > + crtc = drm_atomic_get_new_connector_state(state, connector)->crtc; > + mode = &drm_atomic_get_new_crtc_state(state, crtc)->adjusted_mode; > + > + rzg2l_mipi_dsi_set_display_timing(dsi, mode); > + > ret = rzg2l_mipi_dsi_start_video(dsi); > if (ret < 0) > goto err_stop_clock; > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay 2026-03-30 10:44 [PATCH v3 0/3] Improvements on RZ/G2L MIPI DSI driver Biju 2026-03-30 10:44 ` [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() Biju @ 2026-03-30 10:44 ` Biju 2026-04-03 17:46 ` Tommaso Merciai 2026-03-30 10:44 ` [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal Biju 2 siblings, 1 reply; 7+ messages in thread From: Biju @ 2026-03-30 10:44 UTC (permalink / raw) To: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter Cc: Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad, Biju Das, stable From: Biju Das <biju.das.jz@bp.renesas.com> The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, requires waiting at least 1 msec after deasserting the CMN_RSTB signal before the DSI-Tx module is ready. Increase the delay from 1 usec to 1 msec by replacing udelay(1) with fsleep(1000) for RZ/G2L SoCs. Fixes: 7a043f978ed1 ("drm: rcar-du: Add RZ/G2L DSI driver") Cc: stable@vger.kernel.org Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- v2->v3: * Moved the patch from patch#4 to patch#2. * Added fixes tag. * Updated commit description. v1->v2: * Updated commit header and description. --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ff95cb9a7de5..9d9f77d8f949 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -528,7 +528,7 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, if (ret < 0) return ret; - udelay(1); + fsleep(1000); return 0; } -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay 2026-03-30 10:44 ` [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay Biju @ 2026-04-03 17:46 ` Tommaso Merciai 0 siblings, 0 replies; 7+ messages in thread From: Tommaso Merciai @ 2026-04-03 17:46 UTC (permalink / raw) To: Biju Cc: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad, stable Hi Biju, Thanks for your patch. On Mon, Mar 30, 2026 at 11:44:45AM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.renesas.com> > > The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, > requires waiting at least 1 msec after deasserting the CMN_RSTB signal > before the DSI-Tx module is ready. Increase the delay from 1 usec to > 1 msec by replacing udelay(1) with fsleep(1000) for RZ/G2L SoCs. > Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Kind Regards, Tommaso > Fixes: 7a043f978ed1 ("drm: rcar-du: Add RZ/G2L DSI driver") > Cc: stable@vger.kernel.org > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > v2->v3: > * Moved the patch from patch#4 to patch#2. > * Added fixes tag. > * Updated commit description. > v1->v2: > * Updated commit header and description. > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > 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 ff95cb9a7de5..9d9f77d8f949 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > @@ -528,7 +528,7 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, > if (ret < 0) > return ret; > > - udelay(1); > + fsleep(1000); > > return 0; > } > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal 2026-03-30 10:44 [PATCH v3 0/3] Improvements on RZ/G2L MIPI DSI driver Biju 2026-03-30 10:44 ` [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() Biju 2026-03-30 10:44 ` [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay Biju @ 2026-03-30 10:44 ` Biju 2026-04-03 17:44 ` Tommaso Merciai 2 siblings, 1 reply; 7+ messages in thread From: Biju @ 2026-03-30 10:44 UTC (permalink / raw) To: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter Cc: Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad, Biju Das From: Biju Das <biju.das.jz@bp.renesas.com> The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, requires deasserting the CMN_RSTB signal after setting the Link registers. Move the reset_control_deassert() call from rzg2l_mipi_dsi_dphy_init() to rzg2l_mipi_dsi_startup(), placing it after the Link register writes. This reset signal is optional for RZ/V2H SoCs, so add a NULL check. Drop the unused ret variable from rzg2l_mipi_dsi_dphy_init(). The CMN_RSTB signal is not required for reading PHY registers in the probe. Move reset_control_assert() from rzg2l_mipi_dsi_dphy_exit() to rzg2l_mipi_dsi_stop(), placing it before the dphy_exit() call. Since this reset signal is optional for RZ/V2H, the call is a no-op on that SoC. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- v2->v3: * Merged patch#2 and patch#3 to avoid breakage. * Updated commit description v1->v2: * Updated commit header and description * Moved the code from rzg2l_mipi_dsi_dphy_init() to rzg2l_mipi_dsi_startup() * Moved the check before calling reset_control_deassert(), so that it will be skipped for RZ/V2H SoC --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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 9d9f77d8f949..715872130780 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -484,7 +484,6 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, u32 dphytim1; u32 dphytim2; u32 dphytim3; - int ret; /* All DSI global operation timings are set with recommended setting */ for (i = 0; i < ARRAY_SIZE(rzg2l_mipi_dsi_global_timings); ++i) { @@ -524,12 +523,6 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYTIM2, dphytim2); rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYTIM3, dphytim3); - ret = reset_control_deassert(dsi->rstc); - if (ret < 0) - return ret; - - fsleep(1000); - return 0; } @@ -541,8 +534,6 @@ static void rzg2l_mipi_dsi_dphy_exit(struct rzg2l_mipi_dsi *dsi) dphyctrl0 &= ~(DSIDPHYCTRL0_EN_LDO1200 | DSIDPHYCTRL0_EN_BGR); rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYCTRL0, dphyctrl0); - - reset_control_assert(dsi->rstc); } static int rzg2l_dphy_conf_clks(struct rzg2l_mipi_dsi *dsi, unsigned long mode_freq, @@ -811,6 +802,14 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, FIELD_MODIFY(DSISETR_MRPSZ, &dsisetr, RZG2L_DCS_BUF_SIZE); rzg2l_mipi_dsi_link_write(dsi, DSISETR, dsisetr); + if (dsi->rstc) { + ret = reset_control_deassert(dsi->rstc); + if (ret < 0) + goto err_phy; + + fsleep(1000); + } + return 0; err_phy: @@ -822,6 +821,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, static void rzg2l_mipi_dsi_stop(struct rzg2l_mipi_dsi *dsi) { + reset_control_assert(dsi->rstc); dsi->info->dphy_exit(dsi); pm_runtime_put(dsi->dev); } -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal 2026-03-30 10:44 ` [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal Biju @ 2026-04-03 17:44 ` Tommaso Merciai 0 siblings, 0 replies; 7+ messages in thread From: Tommaso Merciai @ 2026-04-03 17:44 UTC (permalink / raw) To: Biju Cc: Biju Das, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Chris Brandt, Laurent Pinchart, Sam Ravnborg, dri-devel, linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Prabhakar Mahadev Lad Hi Biju, Thanks for your patch. On Mon, Mar 30, 2026 at 11:44:46AM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.renesas.com> > > The RZ/G2L hardware manual (Rev. 1.50, May 2025), Section 34.4.2.1, > requires deasserting the CMN_RSTB signal after setting the Link registers. > Move the reset_control_deassert() call from rzg2l_mipi_dsi_dphy_init() to > rzg2l_mipi_dsi_startup(), placing it after the Link register writes. This > reset signal is optional for RZ/V2H SoCs, so add a NULL check. Drop the > unused ret variable from rzg2l_mipi_dsi_dphy_init(). > > The CMN_RSTB signal is not required for reading PHY registers in the > probe. Move reset_control_assert() from rzg2l_mipi_dsi_dphy_exit() to > rzg2l_mipi_dsi_stop(), placing it before the dphy_exit() call. Since this > reset signal is optional for RZ/V2H, the call is a no-op on that SoC. > Tested on RZ/G3E. Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Kind Regards, Tommaso > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > v2->v3: > * Merged patch#2 and patch#3 to avoid breakage. > * Updated commit description > v1->v2: > * Updated commit header and description > * Moved the code from rzg2l_mipi_dsi_dphy_init() to rzg2l_mipi_dsi_startup() > * Moved the check before calling reset_control_deassert(), so that it will be > skipped for RZ/V2H SoC > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > 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 9d9f77d8f949..715872130780 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > @@ -484,7 +484,6 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, > u32 dphytim1; > u32 dphytim2; > u32 dphytim3; > - int ret; > > /* All DSI global operation timings are set with recommended setting */ > for (i = 0; i < ARRAY_SIZE(rzg2l_mipi_dsi_global_timings); ++i) { > @@ -524,12 +523,6 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, > rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYTIM2, dphytim2); > rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYTIM3, dphytim3); > > - ret = reset_control_deassert(dsi->rstc); > - if (ret < 0) > - return ret; > - > - fsleep(1000); > - > return 0; > } > > @@ -541,8 +534,6 @@ static void rzg2l_mipi_dsi_dphy_exit(struct rzg2l_mipi_dsi *dsi) > > dphyctrl0 &= ~(DSIDPHYCTRL0_EN_LDO1200 | DSIDPHYCTRL0_EN_BGR); > rzg2l_mipi_dsi_phy_write(dsi, DSIDPHYCTRL0, dphyctrl0); > - > - reset_control_assert(dsi->rstc); > } > > static int rzg2l_dphy_conf_clks(struct rzg2l_mipi_dsi *dsi, unsigned long mode_freq, > @@ -811,6 +802,14 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, > FIELD_MODIFY(DSISETR_MRPSZ, &dsisetr, RZG2L_DCS_BUF_SIZE); > rzg2l_mipi_dsi_link_write(dsi, DSISETR, dsisetr); > > + if (dsi->rstc) { > + ret = reset_control_deassert(dsi->rstc); > + if (ret < 0) > + goto err_phy; > + > + fsleep(1000); > + } > + > return 0; > > err_phy: > @@ -822,6 +821,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, > > static void rzg2l_mipi_dsi_stop(struct rzg2l_mipi_dsi *dsi) > { > + reset_control_assert(dsi->rstc); > dsi->info->dphy_exit(dsi); > pm_runtime_put(dsi->dev); > } > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-03 17:46 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-30 10:44 [PATCH v3 0/3] Improvements on RZ/G2L MIPI DSI driver Biju 2026-03-30 10:44 ` [PATCH v3 1/3] drm: renesas: rzg2l_mipi_dsi: Move rzg2l_mipi_dsi_set_display_timing() Biju 2026-04-03 17:45 ` Tommaso Merciai 2026-03-30 10:44 ` [PATCH v3 2/3] drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay Biju 2026-04-03 17:46 ` Tommaso Merciai 2026-03-30 10:44 ` [PATCH v3 3/3] drm: renesas: rzg2l_mipi_dsi: Fix deassert/assert of CMN_RSTB signal Biju 2026-04-03 17:44 ` Tommaso Merciai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox