2019-03-21 08:05:46

by Yannick FERTRE

[permalink] [raw]
Subject: [PATCH] drm/panel: otm8009a: add delay at the end of initialization

At the end of initialization, a delay is required by the panel.
Without this delay, the panel could received a frame early &
generate a crash of panel (black screen).

Signed-off-by: Yannick Fertré <[email protected]>
---
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 87fa316..58ccf64 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -248,6 +248,9 @@ static int otm8009a_init_sequence(struct otm8009a *ctx)
/* Send Command GRAM memory write (no parameters) */
dcs_write_seq(ctx, MIPI_DCS_WRITE_MEMORY_START);

+ /* Wait a short while to let the panel be ready before the 1st frame */
+ mdelay(10);
+
return 0;
}

--
2.7.4



2019-03-26 12:49:24

by Philippe Cornu

[permalink] [raw]
Subject: Re: [PATCH] drm/panel: otm8009a: add delay at the end of initialization

Dear Yannick,
Many thanks for your patch.

Reviewed-by: Philippe Cornu <[email protected]>
Tested-by: Philippe Cornu <[email protected]>

Best regards,
Philippe

On 3/21/19 9:04 AM, Yannick Fertré wrote:
> At the end of initialization, a delay is required by the panel.
> Without this delay, the panel could received a frame early &
> generate a crash of panel (black screen).
>
> Signed-off-by: Yannick Fertré <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 87fa316..58ccf64 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -248,6 +248,9 @@ static int otm8009a_init_sequence(struct otm8009a *ctx)
> /* Send Command GRAM memory write (no parameters) */
> dcs_write_seq(ctx, MIPI_DCS_WRITE_MEMORY_START);
>
> + /* Wait a short while to let the panel be ready before the 1st frame */
> + mdelay(10);
> +
> return 0;
> }
>
>

2019-04-03 16:23:51

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] drm/panel: otm8009a: add delay at the end of initialization

On Thu, Mar 21, 2019 at 09:04:05AM +0100, Yannick Fertré wrote:
> At the end of initialization, a delay is required by the panel.
> Without this delay, the panel could received a frame early &
> generate a crash of panel (black screen).
>
> Signed-off-by: Yannick Fertré <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 3 +++
> 1 file changed, 3 insertions(+)

Applied. You might want to go over this panel and replace some of the
mdelay() calls with msleep(). There are some that busy loop for 120 ms,
which is somewhat rude. Even the mdelay(10) in this driver should be
safe to convert to msleep().

Thierry


Attachments:
(No filename) (665.00 B)
signature.asc (849.00 B)
Download all attachments