* [PATCH] drm/bridge: adv7533: Reset DSI receiver logic
@ 2024-11-13 7:40 Stefan Ekenberg
2024-11-15 8:10 ` Dmitry Baryshkov
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Ekenberg @ 2024-11-13 7:40 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel, kernel, Stefan Ekenberg
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.
Signed-off-by: Stefan Ekenberg <stefan.ekenberg@axis.com>
---
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@axis.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/bridge: adv7533: Reset DSI receiver logic
2024-11-13 7:40 [PATCH] drm/bridge: adv7533: Reset DSI receiver logic Stefan Ekenberg
@ 2024-11-15 8:10 ` Dmitry Baryshkov
2024-11-15 9:01 ` Stefan Ekenberg
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Baryshkov @ 2024-11-15 8:10 UTC (permalink / raw)
To: Stefan Ekenberg
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
linux-kernel, kernel
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?
>
> Signed-off-by: Stefan Ekenberg <stefan.ekenberg@axis.com>
> ---
> 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@axis.com>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/bridge: adv7533: Reset DSI receiver logic
2024-11-15 8:10 ` Dmitry Baryshkov
@ 2024-11-15 9:01 ` Stefan Ekenberg
2024-11-16 12:19 ` Biju Das
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Ekenberg @ 2024-11-15 9:01 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
linux-kernel, kernel
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@axis.com>
>> ---
>> 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@axis.com>
>>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] drm/bridge: adv7533: Reset DSI receiver logic
2024-11-15 9:01 ` Stefan Ekenberg
@ 2024-11-16 12:19 ` Biju Das
0 siblings, 0 replies; 4+ messages in thread
From: Biju Das @ 2024-11-16 12:19 UTC (permalink / raw)
To: Stefan Ekenberg, Dmitry Baryshkov
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, laurent.pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
linux-kernel, kernel
Hi Stefan Ekenberg <stefan.ekenberg@axis.com>,
> -----Original Message-----
> From: dri-devel <dri-devel-bounces@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@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@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@axis.com>
> >>
> >
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-16 12:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-13 7:40 [PATCH] drm/bridge: adv7533: Reset DSI receiver logic Stefan Ekenberg
2024-11-15 8:10 ` Dmitry Baryshkov
2024-11-15 9:01 ` Stefan Ekenberg
2024-11-16 12:19 ` Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®