[PATCH] drm/bridge: adv7533: Reset DSI receiver logic
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Fri Nov 15 08:10:56 UTC 2024
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 at 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 at axis.com>
>
--
With best wishes
Dmitry
More information about the dri-devel
mailing list