RE: [PATCH v2 04/16] drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info struct
Biju Das <[email protected]> Wed, 5 Aug 2026 16:31:28 +0000
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <TY3PR01MB11346A058699BA02106191D9386D32@TY3PR01MB11346.jpnprd01.prod.outlook.com> |
Hi Tommaso Merciai, Thanks for the feedback. > -----Original Message----- > From: Tommaso Merciai <[email protected]> > Sent: 05 August 2026 16:29 > Subject: Re: [PATCH v2 04/16] drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info struct > > Hi Biju, > Thanks for your patch. > > On Wed, Jul 29, 2026 at 01:54:56PM +0100, Biju wrote: > > From: Biju Das <[email protected]> > > > > Move rzg2l_mipi_dsi_global_timings and its array size out of the > > hardcoded ARRAY_SIZE reference in rzg2l_mipi_dsi_dphy_init() and into > > the struct rzg2l_mipi_dsi_hw_info. This allows future hardware > > variants to supply their own timing tables rather than sharing a > > single global array, making the driver more extensible without code duplication. > > > > Signed-off-by: Biju Das <[email protected]> > > --- > > v1->v2: > > * No change. > > --- > > drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 10 ++++++++-- > > 1 file changed, 8 insertions(+), 2 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 1538eeece2b5..180384c10264 100644 > > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c > > @@ -54,6 +54,8 @@ struct rzg2l_mipi_dsi_hw_info { > > const u8 *table; > > const u8 table_size; > > } cpg_plldsi; > > + const struct rzg2l_mipi_dsi_timings *dsi_global_timings; > > + unsigned int num_dsi_global_timings; > > u32 phy_reg_offset; > > u32 link_reg_offset; > > u32 dphyctrl0_init_val; > > @@ -488,8 +490,8 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, > > u32 dphytim3; > > > > /* All DSI global operation timings are set with recommended setting */ > > - for (i = 0; i < ARRAY_SIZE(rzg2l_mipi_dsi_global_timings); ++i) { > > - dphy_timings = &rzg2l_mipi_dsi_global_timings[i]; > > + for (i = 0; i < dsi->info->num_dsi_global_timings; ++i) { > > + dphy_timings = &dsi->info->dsi_global_timings[i]; > > if (hsfreq <= dphy_timings->hsfreq_max) > > break; > > } > > @@ -1519,6 +1521,8 @@ static const struct rzg2l_mipi_dsi_hw_info rzv2h_mipi_dsi_info = { > > .cpg_plldsi.limits = rzv2h_plldsi_limits, > > .cpg_plldsi.table = rzv2h_cpg_div_table, > > .cpg_plldsi.table_size = ARRAY_SIZE(rzv2h_cpg_div_table), > > > + .dsi_global_timings = rzg2l_mipi_dsi_global_timings, > > + .num_dsi_global_timings = ARRAY_SIZE(rzg2l_mipi_dsi_global_timings), > > Are we sure that rzv2h use these new entries: Good catch. Will remove these entries for RZ/V2H as it uses different phy_init that uses It's own parameter. Cheers, Biju