Hi All, I would like to drop this patch as [1] and [2] fixes the issue. [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/gpu/drm/bridge/adv7511/adv7533.c?h=next-20230406&id=9a0cdcd6649b76f0b7ceec0e55b0a718321e34d3 [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/gpu/drm/bridge/adv7511/adv7533.c?h=next-20230406&id=ee0285e13455fdbce5de315bdbe91b5f198a2a06 Cheers, Biju > -----Original Message----- > From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > Sent: Wednesday, March 9, 2022 3:11 PM > To: Andrzej Hajda <andrzej.hajda@xxxxxxxxx>; Neil Armstrong > <narmstrong@xxxxxxxxxxxx>; Robert Foss <robert.foss@xxxxxxxxxx>; David > Airlie <airlied@xxxxxxxx>; Daniel Vetter <daniel@xxxxxxxx> > Cc: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>; Laurent Pinchart > <Laurent.pinchart@xxxxxxxxxxxxxxxx>; Jonas Karlman <jonas@xxxxxxxxx>; Jernej > Skrabec <jernej.skrabec@xxxxxxxxx>; Maxime Ripard <maxime@xxxxxxxxxx>; Sam > Ravnborg <sam@xxxxxxxxxxxx>; Sia Jee Heng <jee.heng.sia@xxxxxxxxx>; Abhinav > Kumar <quic_abhinavk@xxxxxxxxxxx>; Nicolas Boichat <drinkcat@xxxxxxxxxxxx>; > dri-devel@xxxxxxxxxxxxxxxxxxxxx; Geert Uytterhoeven > <geert+renesas@xxxxxxxxx>; Chris Paterson <Chris.Paterson2@xxxxxxxxxxx>; > Biju Das <biju.das@xxxxxxxxxxxxxx>; Prabhakar Mahadev Lad > <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>; linux-renesas-soc@xxxxxxxxxxxxxxx > Subject: [PATCH 2/2] drm/bridge: adv7533: Add option to disable lane > switching > > On Renesas RZ/{G2L,V2L} platforms changing the lanes from 4 to 3 at lower > frequencies causes display instability. On such platforms, it is better to > avoid switching lanes from 4 to 3 as it needs different set of PLL parameter > constraints to make the display stable with 3 lanes. > > This patch adds an option to disable lane switching if 'adi,disable-lanes- > override' property is present in DT. > > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > --- > drivers/gpu/drm/bridge/adv7511/adv7511.h | 1 + > drivers/gpu/drm/bridge/adv7511/adv7533.c | 5 ++++- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511.h > b/drivers/gpu/drm/bridge/adv7511/adv7511.h > index 592ecfcf00ca..7505601f10fb 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511.h > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h > @@ -368,6 +368,7 @@ struct adv7511 { > struct mipi_dsi_device *dsi; > u8 num_dsi_lanes; > bool use_timing_gen; > + bool override_lanes; > > enum adv7511_type type; > struct platform_device *audio_pdev; > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c > b/drivers/gpu/drm/bridge/adv7511/adv7533.c > index eb7579dec40a..7f6a8e95d70e 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c > @@ -108,7 +108,7 @@ void adv7533_mode_set(struct adv7511 *adv, const struct > drm_display_mode *mode) > if (adv->num_dsi_lanes != 4) > return; > > - if (mode->clock > 80000) > + if (!adv->override_lanes || mode->clock > 80000) > lanes = 4; > else > lanes = 3; > @@ -195,6 +195,9 @@ int adv7533_parse_dt(struct device_node *np, struct > adv7511 *adv) > adv->use_timing_gen = !of_property_read_bool(np, > "adi,disable-timing-generator"); > > + adv->override_lanes = !of_property_read_bool(np, > + "adi,disable-lanes-override"); > + > /* TODO: Check if these need to be parsed by DT or not */ > adv->rgb = true; > adv->embedded_sync = false; > -- > 2.17.1