[PATCH] drm/bridge: adv7533: Reset DSI receiver logic

Biju Das biju.das.jz at bp.renesas.com
Sat Nov 16 12:19:53 UTC 2024


Hi Stefan Ekenberg <stefan.ekenberg at axis.com>,

> -----Original Message-----
> From: dri-devel <dri-devel-bounces at lists.freedesktop.org> On Behalf Of Stefan Ekenberg
> Sent: 15 November 2024 09:02
> Subject: Re: [PATCH] drm/bridge: adv7533: Reset DSI receiver logic
> 
> On 11/15/24 09:10, Dmitry Baryshkov wrote:
> > On Wed, Nov 13, 2024 at 08:40:15AM +0100, Stefan Ekenberg wrote:
> >> Reset DSI receiver logic during power on. The need for this change
> >> was discovered when investigating issue with ADV7535. The symptom of
> >> the problem was that ADV7535 continuously outputs a black image. This
> >> happened for about 10% of the times that ADV7535 was powered on. The
> >> rest of the times the image was as expected.
> >>
> >> The solution in this patch (placement of reset and sleep time of
> >> 200ms) is implemented as outlined by the Analog Devices support team.
> >
> > Is this reset sequence specific only to adv7535? Is it applicable to
> > adv7533? adv7511?
> 
> I know that it is not applicable for ADV7511 (that chip doesn't have any MIPI DSI receiver). It might
> be applicable for ADV7533 but unfortunately I don't know. I have only used AD7535 and therefore never
> tested anything on ADV7533.
> 
> >
> >>
> >> Signed-off-by: Stefan Ekenberg <stefan.ekenberg at axis.com>

With and without the patch, display works on Renesas RZ/V2L SMARC board which is connected to ADV7535 device.

Tested-by: Biju Das <biju.das.jz at bp.renesas.com>

Cheers,
Biju

> >> ---
> >>   drivers/gpu/drm/bridge/adv7511/adv7533.c | 9 +++++++++
> >>   1 file changed, 9 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> >> index 4481489aaf5ebf164313c86cbf3447d2d7914ab9..93085c2b872ed98f4ee394236dc66c568c0e5ccf 100644
> >> --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> >> +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> >> @@ -67,6 +67,15 @@ void adv7533_dsi_power_on(struct adv7511 *adv)
> >>   {
> >>   	struct mipi_dsi_device *dsi = adv->dsi;
> >>
> >> +	/*
> >> +	 * Reset DSI receiver block logic to avoid ADV7535 startup problem.
> >> +	 * Without this reset it sometimes continuously fails to receive
> >> +	 * incoming DSI packets and outputs black image.
> >> +	 */
> >> +	regmap_write(adv->regmap_cec, 0x26, 0x18);
> >> +	msleep(200);
> >> +	regmap_write(adv->regmap_cec, 0x26, 0x38);
> >> +
> >>   	if (adv->use_timing_gen)
> >>   		adv7511_dsi_config_timing_gen(adv);
> >>
> >>
> >> ---
> >> base-commit: 59b723cd2adbac2a34fc8e12c74ae26ae45bf230
> >> change-id: 20241108-adv7533-dsi-reset-488c6fbb5e42
> >>
> >> Best regards,
> >> --
> >> Stefan Ekenberg <stefan.ekenberg at axis.com>
> >>
> >



More information about the dri-devel mailing list