[PATCH v2 2/2] drm: adv7511: Fix out-of-bounds array in clock_div_by_lanes
Biju Das
biju.das.jz at bp.renesas.com
Wed Nov 6 10:20:43 UTC 2024
Hi Laurent Pinchart,
Thanks for the feedback.
> -----Original Message-----
> From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Sent: 05 November 2024 16:06
> Subject: Re: [PATCH v2 2/2] drm: adv7511: Fix out-of-bounds array in clock_div_by_lanes
>
> Hi Biju,
>
> Thank you for the patch.
>
> On Tue, Nov 05, 2024 at 11:12:19AM +0000, Biju Das wrote:
> > Fix out-of-bounds array in adv7511_dsi_config_timing_gen(), when dsi
> > lanes = 1.
>
> Does the hardware support using the internal timing generator with a single lane ? If so
As per the binding documentation [1], ADV7535 supports single lane.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/display/bridge/adi,adv7533.yaml?h=next-20241106
> adv7511_dsi_config_timing_gen() should be fixed, otherwise that should be explained in the commit
On RZ/G2L SMARC EVK platform, lanes=2,3,4 works ok, But with setting lanes=1, video is unstable
by trying with clock_divider as 6,7 and 8 by updating the array and also disabling internal timing generator.
> message, and mentioned with a comment in adv7533_parse_dt(). I would also print an error message in
> that case.
OK, this can be done.
>
> If the internal timing generator can't be used with a single lane, the DT bindings should also be
> updated to document that.
Even single lane with or without internal timing generator does not work on RZ/G2L.
So, any users of ADV 7535 tested single lane??
Cheers,
Biju
>
> > Fixes: 78fa479d703c ("drm/bridge: adv7533: Use internal timing
> > generator")
> > Reported-by: Hien Huynh <hien.huynh.px at renesas.com>
> > Signed-off-by: Biju Das <biju.das.jz at bp.renesas.com>
> > ---
> > Changes in v2:
> > - Added the tag "Cc: stable at vger.kernel.org" in the sign-off area.
> > - Dropped Archit Taneja invalid Mail address
> > ---
> > drivers/gpu/drm/bridge/adv7511/adv7533.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > index 3e57ba838e5e..0c2236e53af5 100644
> > --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > @@ -185,6 +185,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");
> >
> > + if (adv->use_timing_gen && num_lanes == 1)
> > + return -EINVAL;
> > +
> > /* TODO: Check if these need to be parsed by DT or not */
> > adv->rgb = true;
> > adv->embedded_sync = false;
>
> --
> Regards,
>
> Laurent Pinchart
More information about the dri-devel
mailing list