dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements
@ 2018-04-23 14:10 Philippe Cornu
  2018-04-23 14:10 ` [PATCH 1/4] drm/panel: otm8009a: fix backlight updates Philippe Cornu
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Philippe Cornu @ 2018-04-23 14:10 UTC (permalink / raw)
  To: Thierry Reding, David Airlie, dri-devel, linux-kernel
  Cc: Alexandre Torgue, Philippe Cornu, Yannick Fertre, Vincent Abriou

This patch serie fixes 2 backlight issues and adds the new
backlight api support.

Philippe Cornu (4):
  drm/panel: otm8009a: fix backlight updates
  drm/panel: otm8009a: fix glitches by moving backlight enable to
    otm8009a_enable()
  drm/panel: otm8009a: no message if probe success
  drm/panel: otm8009a: use new backlight api

 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 58 ++++++++++++------------
 1 file changed, 30 insertions(+), 28 deletions(-)

-- 
2.15.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] drm/panel: otm8009a: fix backlight updates
  2018-04-23 14:10 [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements Philippe Cornu
@ 2018-04-23 14:10 ` Philippe Cornu
  2018-05-14  8:36   ` Vincent ABRIOU
  2018-04-23 14:10 ` [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable() Philippe Cornu
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Cornu @ 2018-04-23 14:10 UTC (permalink / raw)
  To: Thierry Reding, David Airlie, dri-devel, linux-kernel
  Cc: Alexandre Torgue, Philippe Cornu, Yannick Fertre, Vincent Abriou

Backlight updates was not working anymore since the good
implementation of the dsi lpm mode in the dsi host driver.
After a longer analysis, the backlight updates in dsi video
mode require the dsi hs mode.
Note: it is important to keep the dsi lpm mode for the rest
of the driver as init sequence, sleep in/out... dsi commands
work in lp mode.

Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
---
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 90f1ae4af93c..0fd2e0144d2b 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -98,6 +98,20 @@ static void otm8009a_dcs_write_buf(struct otm8009a *ctx, const void *data,
 		DRM_WARN("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 };			\
@@ -387,7 +401,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(ctx, data, ARRAY_SIZE(data));
+		otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
 
 		/* set Brightness Control & Backlight on */
 		data[1] = 0x24;
@@ -399,7 +413,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(ctx, data, ARRAY_SIZE(data));
+	otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
 
 	return 0;
 }
-- 
2.15.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable()
  2018-04-23 14:10 [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements Philippe Cornu
  2018-04-23 14:10 ` [PATCH 1/4] drm/panel: otm8009a: fix backlight updates Philippe Cornu
@ 2018-04-23 14:10 ` Philippe Cornu
  2018-05-14  8:37   ` Vincent ABRIOU
  2018-04-23 14:10 ` [PATCH 3/4] drm/panel: otm8009a: no message if probe success Philippe Cornu
  2018-04-23 14:10 ` [PATCH 4/4] drm/panel: otm8009a: use new backlight api Philippe Cornu
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Cornu @ 2018-04-23 14:10 UTC (permalink / raw)
  To: Thierry Reding, David Airlie, dri-devel, linux-kernel
  Cc: Alexandre Torgue, Philippe Cornu, Yannick Fertre, Vincent Abriou

The backlight 1st update was in the otm8009a_prepare() function
for a bad reason: backlight was not working in video mode and the
otm8009a_prepare() is in command mode for the init sequence. As the
backlight is now fixed (no lpm), it is good to put it back in the
otm8009a_enable() function, avoiding also image glitches visible
on some "slow" devices.

Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
---
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 0fd2e0144d2b..de4a16d5275c 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -330,13 +330,6 @@ static int otm8009a_prepare(struct drm_panel *panel)
 
 	ctx->prepared = true;
 
-	/*
-	 * Power on the backlight. Note: end-user still controls brightness
-	 * Note: ctx->prepared must be true before updating the backlight.
-	 */
-	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
-	backlight_update_status(ctx->bl_dev);
-
 	return 0;
 }
 
@@ -344,6 +337,16 @@ static int otm8009a_enable(struct drm_panel *panel)
 {
 	struct otm8009a *ctx = panel_to_otm8009a(panel);
 
+	if (ctx->enabled)
+		return 0;
+
+	/*
+	 * Power on the backlight. Note: end-user still controls brightness
+	 * Note: ctx->prepared must be true before updating the backlight.
+	 */
+	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
+	backlight_update_status(ctx->bl_dev);
+
 	ctx->enabled = true;
 
 	return 0;
-- 
2.15.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] drm/panel: otm8009a: no message if probe success
  2018-04-23 14:10 [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements Philippe Cornu
  2018-04-23 14:10 ` [PATCH 1/4] drm/panel: otm8009a: fix backlight updates Philippe Cornu
  2018-04-23 14:10 ` [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable() Philippe Cornu
@ 2018-04-23 14:10 ` Philippe Cornu
  2018-05-14  8:38   ` Vincent ABRIOU
  2018-04-23 14:10 ` [PATCH 4/4] drm/panel: otm8009a: use new backlight api Philippe Cornu
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Cornu @ 2018-04-23 14:10 UTC (permalink / raw)
  To: Thierry Reding, David Airlie, dri-devel, linux-kernel
  Cc: Alexandre Torgue, Philippe Cornu, Yannick Fertre, Vincent Abriou

Remove the message in case of probe success. This comes from
a suggestion followed in the recent integration of the
raydium rm68200 panel.

Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
---
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index de4a16d5275c..4c638b7b9943 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -14,8 +14,6 @@
 #include <linux/regulator/consumer.h>
 #include <video/mipi_display.h>
 
-#define DRV_NAME "orisetech_otm8009a"
-
 #define OTM8009A_BACKLIGHT_DEFAULT	240
 #define OTM8009A_BACKLIGHT_MAX		255
 
@@ -461,7 +459,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &otm8009a_drm_funcs;
 
-	ctx->bl_dev = backlight_device_register(DRV_NAME "_backlight", dev, ctx,
+	ctx->bl_dev = backlight_device_register(dev_name(dev), dev, ctx,
 						&otm8009a_backlight_ops, NULL);
 	if (IS_ERR(ctx->bl_dev)) {
 		dev_err(dev, "failed to register backlight device\n");
@@ -483,11 +481,6 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
 		return ret;
 	}
 
-	DRM_INFO(DRV_NAME "_panel %ux%u@%u %ubpp dsi %udl - ready\n",
-		 default_mode.hdisplay, default_mode.vdisplay,
-		 default_mode.vrefresh,
-		 mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
-
 	return 0;
 }
 
@@ -513,7 +506,7 @@ static struct mipi_dsi_driver orisetech_otm8009a_driver = {
 	.probe  = otm8009a_probe,
 	.remove = otm8009a_remove,
 	.driver = {
-		.name = DRV_NAME "_panel",
+		.name = "panel-orisetech-otm8009a",
 		.of_match_table = orisetech_otm8009a_of_match,
 	},
 };
-- 
2.15.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] drm/panel: otm8009a: use new backlight api
  2018-04-23 14:10 [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements Philippe Cornu
                   ` (2 preceding siblings ...)
  2018-04-23 14:10 ` [PATCH 3/4] drm/panel: otm8009a: no message if probe success Philippe Cornu
@ 2018-04-23 14:10 ` Philippe Cornu
  2018-05-14  8:39   ` Vincent ABRIOU
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Cornu @ 2018-04-23 14:10 UTC (permalink / raw)
  To: Thierry Reding, David Airlie, dri-devel, linux-kernel
  Cc: Alexandre Torgue, Philippe Cornu, Yannick Fertre, Vincent Abriou

Use the new backlight api.

Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
---
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 26 ++++++++----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 4c638b7b9943..c2a71bd17e08 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -260,11 +260,7 @@ static int otm8009a_disable(struct drm_panel *panel)
 	if (!ctx->enabled)
 		return 0; /* This is not an issue so we return 0 here */
 
-	/* Power off the backlight. Note: end-user still controls brightness */
-	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
-	ret = backlight_update_status(ctx->bl_dev);
-	if (ret)
-		return ret;
+	backlight_disable(ctx->bl_dev);
 
 	ret = mipi_dsi_dcs_set_display_off(dsi);
 	if (ret)
@@ -338,12 +334,7 @@ static int otm8009a_enable(struct drm_panel *panel)
 	if (ctx->enabled)
 		return 0;
 
-	/*
-	 * Power on the backlight. Note: end-user still controls brightness
-	 * Note: ctx->prepared must be true before updating the backlight.
-	 */
-	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
-	backlight_update_status(ctx->bl_dev);
+	backlight_enable(ctx->bl_dev);
 
 	ctx->enabled = true;
 
@@ -459,11 +450,14 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
 	ctx->panel.dev = dev;
 	ctx->panel.funcs = &otm8009a_drm_funcs;
 
-	ctx->bl_dev = backlight_device_register(dev_name(dev), dev, ctx,
-						&otm8009a_backlight_ops, NULL);
+	ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
+						     dsi->host->dev, ctx,
+						     &otm8009a_backlight_ops,
+						     NULL);
 	if (IS_ERR(ctx->bl_dev)) {
-		dev_err(dev, "failed to register backlight device\n");
-		return PTR_ERR(ctx->bl_dev);
+		ret = PTR_ERR(ctx->bl_dev);
+		dev_err(dev, "failed to register backlight %d\n", ret);
+		return ret;
 	}
 
 	ctx->bl_dev->props.max_brightness = OTM8009A_BACKLIGHT_MAX;
@@ -491,8 +485,6 @@ static int otm8009a_remove(struct mipi_dsi_device *dsi)
 	mipi_dsi_detach(dsi);
 	drm_panel_remove(&ctx->panel);
 
-	backlight_device_unregister(ctx->bl_dev);
-
 	return 0;
 }
 
-- 
2.15.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] drm/panel: otm8009a: fix backlight updates
  2018-04-23 14:10 ` [PATCH 1/4] drm/panel: otm8009a: fix backlight updates Philippe Cornu
@ 2018-05-14  8:36   ` Vincent ABRIOU
  0 siblings, 0 replies; 9+ messages in thread
From: Vincent ABRIOU @ 2018-05-14  8:36 UTC (permalink / raw)
  To: Philippe CORNU, Thierry Reding, David Airlie,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
  Cc: Yannick FERTRE, Alexandre TORGUE

Hi Philippe,

Reviewed-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

On 04/23/2018 04:10 PM, Philippe Cornu wrote:
> Backlight updates was not working anymore since the good
> implementation of the dsi lpm mode in the dsi host driver.
> After a longer analysis, the backlight updates in dsi video
> mode require the dsi hs mode.
> Note: it is important to keep the dsi lpm mode for the rest
> of the driver as init sequence, sleep in/out... dsi commands
> work in lp mode.
> 
> Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
> ---
>   drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 18 ++++++++++++++++--
>   1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 90f1ae4af93c..0fd2e0144d2b 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -98,6 +98,20 @@ static void otm8009a_dcs_write_buf(struct otm8009a *ctx, const void *data,
>   		DRM_WARN("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 };			\
> @@ -387,7 +401,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(ctx, data, ARRAY_SIZE(data));
> +		otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
>   
>   		/* set Brightness Control & Backlight on */
>   		data[1] = 0x24;
> @@ -399,7 +413,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(ctx, data, ARRAY_SIZE(data));
> +	otm8009a_dcs_write_buf_hs(ctx, data, ARRAY_SIZE(data));
>   
>   	return 0;
>   }
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable()
  2018-04-23 14:10 ` [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable() Philippe Cornu
@ 2018-05-14  8:37   ` Vincent ABRIOU
  0 siblings, 0 replies; 9+ messages in thread
From: Vincent ABRIOU @ 2018-05-14  8:37 UTC (permalink / raw)
  To: Philippe CORNU, Thierry Reding, David Airlie,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
  Cc: Yannick FERTRE, Alexandre TORGUE

Hi Philippe,

Reviewed-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

On 04/23/2018 04:10 PM, Philippe Cornu wrote:
> The backlight 1st update was in the otm8009a_prepare() function
> for a bad reason: backlight was not working in video mode and the
> otm8009a_prepare() is in command mode for the init sequence. As the
> backlight is now fixed (no lpm), it is good to put it back in the
> otm8009a_enable() function, avoiding also image glitches visible
> on some "slow" devices.
> 
> Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
> ---
>   drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 ++++++++++-------
>   1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 0fd2e0144d2b..de4a16d5275c 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -330,13 +330,6 @@ static int otm8009a_prepare(struct drm_panel *panel)
>   
>   	ctx->prepared = true;
>   
> -	/*
> -	 * Power on the backlight. Note: end-user still controls brightness
> -	 * Note: ctx->prepared must be true before updating the backlight.
> -	 */
> -	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
> -	backlight_update_status(ctx->bl_dev);
> -
>   	return 0;
>   }
>   
> @@ -344,6 +337,16 @@ static int otm8009a_enable(struct drm_panel *panel)
>   {
>   	struct otm8009a *ctx = panel_to_otm8009a(panel);
>   
> +	if (ctx->enabled)
> +		return 0;
> +
> +	/*
> +	 * Power on the backlight. Note: end-user still controls brightness
> +	 * Note: ctx->prepared must be true before updating the backlight.
> +	 */
> +	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
> +	backlight_update_status(ctx->bl_dev);
> +
>   	ctx->enabled = true;
>   
>   	return 0;
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/4] drm/panel: otm8009a: no message if probe success
  2018-04-23 14:10 ` [PATCH 3/4] drm/panel: otm8009a: no message if probe success Philippe Cornu
@ 2018-05-14  8:38   ` Vincent ABRIOU
  0 siblings, 0 replies; 9+ messages in thread
From: Vincent ABRIOU @ 2018-05-14  8:38 UTC (permalink / raw)
  To: Philippe CORNU, Thierry Reding, David Airlie,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
  Cc: Yannick FERTRE, Alexandre TORGUE

Hi Philippe,

Reviewed-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

On 04/23/2018 04:10 PM, Philippe Cornu wrote:
> Remove the message in case of probe success. This comes from
> a suggestion followed in the recent integration of the
> raydium rm68200 panel.
> 
> Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
> ---
>   drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 11 ++---------
>   1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index de4a16d5275c..4c638b7b9943 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -14,8 +14,6 @@
>   #include <linux/regulator/consumer.h>
>   #include <video/mipi_display.h>
>   
> -#define DRV_NAME "orisetech_otm8009a"
> -
>   #define OTM8009A_BACKLIGHT_DEFAULT	240
>   #define OTM8009A_BACKLIGHT_MAX		255
>   
> @@ -461,7 +459,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
>   	ctx->panel.dev = dev;
>   	ctx->panel.funcs = &otm8009a_drm_funcs;
>   
> -	ctx->bl_dev = backlight_device_register(DRV_NAME "_backlight", dev, ctx,
> +	ctx->bl_dev = backlight_device_register(dev_name(dev), dev, ctx,
>   						&otm8009a_backlight_ops, NULL);
>   	if (IS_ERR(ctx->bl_dev)) {
>   		dev_err(dev, "failed to register backlight device\n");
> @@ -483,11 +481,6 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
>   		return ret;
>   	}
>   
> -	DRM_INFO(DRV_NAME "_panel %ux%u@%u %ubpp dsi %udl - ready\n",
> -		 default_mode.hdisplay, default_mode.vdisplay,
> -		 default_mode.vrefresh,
> -		 mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
> -
>   	return 0;
>   }
>   
> @@ -513,7 +506,7 @@ static struct mipi_dsi_driver orisetech_otm8009a_driver = {
>   	.probe  = otm8009a_probe,
>   	.remove = otm8009a_remove,
>   	.driver = {
> -		.name = DRV_NAME "_panel",
> +		.name = "panel-orisetech-otm8009a",
>   		.of_match_table = orisetech_otm8009a_of_match,
>   	},
>   };
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] drm/panel: otm8009a: use new backlight api
  2018-04-23 14:10 ` [PATCH 4/4] drm/panel: otm8009a: use new backlight api Philippe Cornu
@ 2018-05-14  8:39   ` Vincent ABRIOU
  0 siblings, 0 replies; 9+ messages in thread
From: Vincent ABRIOU @ 2018-05-14  8:39 UTC (permalink / raw)
  To: Philippe CORNU, Thierry Reding, David Airlie,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
  Cc: Yannick FERTRE, Alexandre TORGUE

Hi Philippe,

Reviewed-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

On 04/23/2018 04:10 PM, Philippe Cornu wrote:
> Use the new backlight api.
> 
> Signed-off-by: Philippe Cornu <philippe.cornu@st.com>
> ---
>   drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 26 ++++++++----------------
>   1 file changed, 9 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index 4c638b7b9943..c2a71bd17e08 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -260,11 +260,7 @@ static int otm8009a_disable(struct drm_panel *panel)
>   	if (!ctx->enabled)
>   		return 0; /* This is not an issue so we return 0 here */
>   
> -	/* Power off the backlight. Note: end-user still controls brightness */
> -	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
> -	ret = backlight_update_status(ctx->bl_dev);
> -	if (ret)
> -		return ret;
> +	backlight_disable(ctx->bl_dev);
>   
>   	ret = mipi_dsi_dcs_set_display_off(dsi);
>   	if (ret)
> @@ -338,12 +334,7 @@ static int otm8009a_enable(struct drm_panel *panel)
>   	if (ctx->enabled)
>   		return 0;
>   
> -	/*
> -	 * Power on the backlight. Note: end-user still controls brightness
> -	 * Note: ctx->prepared must be true before updating the backlight.
> -	 */
> -	ctx->bl_dev->props.power = FB_BLANK_UNBLANK;
> -	backlight_update_status(ctx->bl_dev);
> +	backlight_enable(ctx->bl_dev);
>   
>   	ctx->enabled = true;
>   
> @@ -459,11 +450,14 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
>   	ctx->panel.dev = dev;
>   	ctx->panel.funcs = &otm8009a_drm_funcs;
>   
> -	ctx->bl_dev = backlight_device_register(dev_name(dev), dev, ctx,
> -						&otm8009a_backlight_ops, NULL);
> +	ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
> +						     dsi->host->dev, ctx,
> +						     &otm8009a_backlight_ops,
> +						     NULL);
>   	if (IS_ERR(ctx->bl_dev)) {
> -		dev_err(dev, "failed to register backlight device\n");
> -		return PTR_ERR(ctx->bl_dev);
> +		ret = PTR_ERR(ctx->bl_dev);
> +		dev_err(dev, "failed to register backlight %d\n", ret);
> +		return ret;
>   	}
>   
>   	ctx->bl_dev->props.max_brightness = OTM8009A_BACKLIGHT_MAX;
> @@ -491,8 +485,6 @@ static int otm8009a_remove(struct mipi_dsi_device *dsi)
>   	mipi_dsi_detach(dsi);
>   	drm_panel_remove(&ctx->panel);
>   
> -	backlight_device_unregister(ctx->bl_dev);
> -
>   	return 0;
>   }
>   
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-05-14  8:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-23 14:10 [PATCH 0/4] drm/panel: otm8009a: backlight fixes & improvements Philippe Cornu
2018-04-23 14:10 ` [PATCH 1/4] drm/panel: otm8009a: fix backlight updates Philippe Cornu
2018-05-14  8:36   ` Vincent ABRIOU
2018-04-23 14:10 ` [PATCH 2/4] drm/panel: otm8009a: fix glitches by moving backlight enable to otm8009a_enable() Philippe Cornu
2018-05-14  8:37   ` Vincent ABRIOU
2018-04-23 14:10 ` [PATCH 3/4] drm/panel: otm8009a: no message if probe success Philippe Cornu
2018-05-14  8:38   ` Vincent ABRIOU
2018-04-23 14:10 ` [PATCH 4/4] drm/panel: otm8009a: use new backlight api Philippe Cornu
2018-05-14  8:39   ` Vincent ABRIOU

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox