2020-09-18 12:35:31

by Yannick FERTRE

[permalink] [raw]
Subject: [PATCH] drm/panel: otm8009a: remove hack to force commands in HS

From: Antonio Borneo <[email protected]>

The panel is able to receive commands in LP. The current hack to
force backlight commands in HS was due to workaround an incorrect
settings on DSI controller that prevents sending LP commands while
video out was active.

Remove the hack that forces HS commands.

Signed-off-by: Antonio Borneo <[email protected]>
---
.../gpu/drm/panel/panel-orisetech-otm8009a.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 6ac1accade80..f80b44a8a700 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -99,20 +99,6 @@ static void otm8009a_dcs_write_buf(struct otm8009a *ctx, const void *data,
dev_warn(ctx->dev, "mipi dsi dcs write buffer failed\n");
}

-static void otm8009a_dcs_write_buf_hs(struct otm8009a *ctx, const void *data,
- size_t len)
-{
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-
- /* data will be sent in dsi hs mode (ie. no lpm) */
- dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
-
- otm8009a_dcs_write_buf(ctx, data, len);
-
- /* restore back the dsi lpm mode */
- dsi->mode_flags |= MIPI_DSI_MODE_LPM;
-}
-
#define dcs_write_seq(ctx, seq...) \
({ \
static const u8 d[] = { seq }; \
@@ -400,7 +386,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)
*/
data[0] = MIPI_DCS_SET_DISPLAY_BRIGHTNESS;
data[1] = bd->props.brightness;
- otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
+ otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));

/* set Brightness Control & Backlight on */
data[1] = 0x24;
@@ -412,7 +398,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)

/* Update Brightness Control & Backlight */
data[0] = MIPI_DCS_WRITE_CONTROL_DISPLAY;
- otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
+ otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));

return 0;
}
--
2.17.1


2020-09-18 12:53:13

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] drm/panel: otm8009a: remove hack to force commands in HS

On Fri, Sep 18, 2020 at 01:47:18PM +0200, Yannick Fertre wrote:
> From: Antonio Borneo <[email protected]>
>
> The panel is able to receive commands in LP. The current hack to
> force backlight commands in HS was due to workaround an incorrect
> settings on DSI controller that prevents sending LP commands while
> video out was active.
>
> Remove the hack that forces HS commands.
>
> Signed-off-by: Antonio Borneo <[email protected]>

This and the next are missing your s-o-b line. Also you've done a bunch of
gpu patches arlready, want drm-misc commit rights so you can make sure
they all do land?

https://drm.pages.freedesktop.org/maintainer-tools/getting-started.html

There's tons more docs about how the tooling and process works.

Cheers, Daniel

> ---
> .../gpu/drm/panel/panel-orisetech-otm8009a.c | 18 ++----------------
> 1 file changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 6ac1accade80..f80b44a8a700 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -99,20 +99,6 @@ static void otm8009a_dcs_write_buf(struct otm8009a *ctx, const void *data,
> dev_warn(ctx->dev, "mipi dsi dcs write buffer failed\n");
> }
>
> -static void otm8009a_dcs_write_buf_hs(struct otm8009a *ctx, const void *data,
> - size_t len)
> -{
> - struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
> -
> - /* data will be sent in dsi hs mode (ie. no lpm) */
> - dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
> -
> - otm8009a_dcs_write_buf(ctx, data, len);
> -
> - /* restore back the dsi lpm mode */
> - dsi->mode_flags |= MIPI_DSI_MODE_LPM;
> -}
> -
> #define dcs_write_seq(ctx, seq...) \
> ({ \
> static const u8 d[] = { seq }; \
> @@ -400,7 +386,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)
> */
> data[0] = MIPI_DCS_SET_DISPLAY_BRIGHTNESS;
> data[1] = bd->props.brightness;
> - otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
> + otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));
>
> /* set Brightness Control & Backlight on */
> data[1] = 0x24;
> @@ -412,7 +398,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)
>
> /* Update Brightness Control & Backlight */
> data[0] = MIPI_DCS_WRITE_CONTROL_DISPLAY;
> - otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
> + otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));
>
> return 0;
> }
> --
> 2.17.1
>

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2020-09-24 19:53:38

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] drm/panel: otm8009a: remove hack to force commands in HS

Hi Yannick

On Fri, Sep 18, 2020 at 01:47:18PM +0200, Yannick Fertre wrote:
> From: Antonio Borneo <[email protected]>
>
> The panel is able to receive commands in LP. The current hack to
> force backlight commands in HS was due to workaround an incorrect
> settings on DSI controller that prevents sending LP commands while
> video out was active.
>
> Remove the hack that forces HS commands.
>
> Signed-off-by: Antonio Borneo <[email protected]>

As Daniel wrote this and the next patch is missing a Signed-off-by:
So not applied, but waits for v2 - or that you get commit right and can
do it yourself.

You can add my:
Acked-by: Sam Ravnborg <[email protected]>

> ---
> .../gpu/drm/panel/panel-orisetech-otm8009a.c | 18 ++----------------
> 1 file changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 6ac1accade80..f80b44a8a700 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -99,20 +99,6 @@ static void otm8009a_dcs_write_buf(struct otm8009a *ctx, const void *data,
> dev_warn(ctx->dev, "mipi dsi dcs write buffer failed\n");
> }
>
> -static void otm8009a_dcs_write_buf_hs(struct otm8009a *ctx, const void *data,
> - size_t len)
> -{
> - struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
> -
> - /* data will be sent in dsi hs mode (ie. no lpm) */
> - dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
> -
> - otm8009a_dcs_write_buf(ctx, data, len);
> -
> - /* restore back the dsi lpm mode */
> - dsi->mode_flags |= MIPI_DSI_MODE_LPM;
> -}
> -
> #define dcs_write_seq(ctx, seq...) \
> ({ \
> static const u8 d[] = { seq }; \
> @@ -400,7 +386,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)
> */
> data[0] = MIPI_DCS_SET_DISPLAY_BRIGHTNESS;
> data[1] = bd->props.brightness;
> - otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
> + otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));
>
> /* set Brightness Control & Backlight on */
> data[1] = 0x24;
> @@ -412,7 +398,7 @@ static int otm8009a_backlight_update_status(struct backlight_device *bd)
>
> /* Update Brightness Control & Backlight */
> data[0] = MIPI_DCS_WRITE_CONTROL_DISPLAY;
> - otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
> + otm8009a_dcs_write_buf(ctx, data, ARRAY_SIZE(data));
>
> return 0;
> }
> --
> 2.17.1