All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/18] backlight updates
@ 2020-05-14 19:09 ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

The following series touches a lot of backlight things.

It starts by migrating users of of_find_backlight_by_node()
over to devm_of_find_backlight() to simplify code and to
use the preferred way to register backlight.

All the functions in the backlight core that is no longer
used by any drivers are then marked static to avoid
adding new users.

Then a new helper backlight_is_blank() is added.
This helper will simplify the implementation of update_status()
in almost all backlight drivers.

While surfing the code I really missed some documentation.
So I got a bit carried away and updated the documentation
for the backlight core and added it to kernel-doc.
The documentation express my current understanding.
Everything from spelling errors to outright wrong content
shall be anticipated - so please review!
We are all best helped if the documentation is correct
and up-to-date and it is readable.

In this process I identified that the backlight_bl driver
was no longer is use - so drop it.

The last patch is for now just an RFC patch that shows
the potential simplifications by introducing the
use of the backlight_is_blank() helper.
I may split it up later.

I have local patches to introduce backlight_is_blank()
in the remaining backlight drivers.
But they will await that this patch set matures a bit.

Everything builds, but so far no run-time testing.

	Sam

Sam Ravnborg (18):
      drm/omap: display: use devm_of_find_backlight
      drm/tilcdc: use devm_of_find_backlight
      video: amba-clcd: use devm_of_find_backlight
      backlight: make of_find_backlight static
      backlight: drop backlight_put()
      backlight: make of_find_backlight_by_node() static
      backlight: refactor fb_notifier_callback()
      backlight: add backlight_is_blank()
      backlight: improve backlight_ops documentation
      backlight: improve backlight_properties documentation
      backlight: improve backlight_device documentation
      backlight: document inline functions in backlight.h
      backlight: document enums in backlight.h
      backlight: remove the unused backlight_bl driver
      backlight: drop extern from prototypes
      backlight: add overview and update doc
      backlight: wire up kernel-doc documentation
      backlight: use backlight_is_blank() in all backlight drivers

 Documentation/gpu/backlight.rst                 |  12 +
 Documentation/gpu/index.rst                     |   1 +
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
 drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
 drivers/video/backlight/88pm860x_bl.c           |   8 +-
 drivers/video/backlight/Kconfig                 |   8 -
 drivers/video/backlight/Makefile                |   1 -
 drivers/video/backlight/adp5520_bl.c            |   5 +-
 drivers/video/backlight/adp8860_bl.c            |   5 +-
 drivers/video/backlight/adp8870_bl.c            |   5 +-
 drivers/video/backlight/as3711_bl.c             |   8 +-
 drivers/video/backlight/backlight.c             | 237 ++++++++------
 drivers/video/backlight/bd6107.c                |   4 +-
 drivers/video/backlight/corgi_lcd.c             |   5 +-
 drivers/video/backlight/cr_bllcd.c              |  22 +-
 drivers/video/backlight/da903x_bl.c             |   8 +-
 drivers/video/backlight/ep93xx_bl.c             |   3 +-
 drivers/video/backlight/generic_bl.c            | 110 -------
 drivers/video/backlight/gpio_backlight.c        |   4 +-
 drivers/video/backlight/hp680_bl.c              |   4 +-
 drivers/video/backlight/jornada720_bl.c         |   2 +-
 drivers/video/backlight/kb3886_bl.c             |   4 +-
 drivers/video/backlight/led_bl.c                |   4 +-
 drivers/video/backlight/lm3533_bl.c             |   4 +-
 drivers/video/backlight/locomolcd.c             |   4 +-
 drivers/video/backlight/lv5207lp.c              |   4 +-
 drivers/video/backlight/max8925_bl.c            |   8 +-
 drivers/video/backlight/pwm_bl.c                |   4 +-
 drivers/video/backlight/qcom-wled.c             |   4 +-
 drivers/video/backlight/tps65217_bl.c           |   4 +-
 drivers/video/backlight/wm831x_bl.c             |   8 +-
 drivers/video/fbdev/amba-clcd.c                 |  19 +-
 include/linux/backlight.h                       | 415 +++++++++++++++++++-----
 33 files changed, 536 insertions(+), 433 deletions(-)



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

* [PATCH v1 0/18] backlight updates
@ 2020-05-14 19:09 ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

The following series touches a lot of backlight things.

It starts by migrating users of of_find_backlight_by_node()
over to devm_of_find_backlight() to simplify code and to
use the preferred way to register backlight.

All the functions in the backlight core that is no longer
used by any drivers are then marked static to avoid
adding new users.

Then a new helper backlight_is_blank() is added.
This helper will simplify the implementation of update_status()
in almost all backlight drivers.

While surfing the code I really missed some documentation.
So I got a bit carried away and updated the documentation
for the backlight core and added it to kernel-doc.
The documentation express my current understanding.
Everything from spelling errors to outright wrong content
shall be anticipated - so please review!
We are all best helped if the documentation is correct
and up-to-date and it is readable.

In this process I identified that the backlight_bl driver
was no longer is use - so drop it.

The last patch is for now just an RFC patch that shows
the potential simplifications by introducing the
use of the backlight_is_blank() helper.
I may split it up later.

I have local patches to introduce backlight_is_blank()
in the remaining backlight drivers.
But they will await that this patch set matures a bit.

Everything builds, but so far no run-time testing.

	Sam

Sam Ravnborg (18):
      drm/omap: display: use devm_of_find_backlight
      drm/tilcdc: use devm_of_find_backlight
      video: amba-clcd: use devm_of_find_backlight
      backlight: make of_find_backlight static
      backlight: drop backlight_put()
      backlight: make of_find_backlight_by_node() static
      backlight: refactor fb_notifier_callback()
      backlight: add backlight_is_blank()
      backlight: improve backlight_ops documentation
      backlight: improve backlight_properties documentation
      backlight: improve backlight_device documentation
      backlight: document inline functions in backlight.h
      backlight: document enums in backlight.h
      backlight: remove the unused backlight_bl driver
      backlight: drop extern from prototypes
      backlight: add overview and update doc
      backlight: wire up kernel-doc documentation
      backlight: use backlight_is_blank() in all backlight drivers

 Documentation/gpu/backlight.rst                 |  12 +
 Documentation/gpu/index.rst                     |   1 +
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
 drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
 drivers/video/backlight/88pm860x_bl.c           |   8 +-
 drivers/video/backlight/Kconfig                 |   8 -
 drivers/video/backlight/Makefile                |   1 -
 drivers/video/backlight/adp5520_bl.c            |   5 +-
 drivers/video/backlight/adp8860_bl.c            |   5 +-
 drivers/video/backlight/adp8870_bl.c            |   5 +-
 drivers/video/backlight/as3711_bl.c             |   8 +-
 drivers/video/backlight/backlight.c             | 237 ++++++++------
 drivers/video/backlight/bd6107.c                |   4 +-
 drivers/video/backlight/corgi_lcd.c             |   5 +-
 drivers/video/backlight/cr_bllcd.c              |  22 +-
 drivers/video/backlight/da903x_bl.c             |   8 +-
 drivers/video/backlight/ep93xx_bl.c             |   3 +-
 drivers/video/backlight/generic_bl.c            | 110 -------
 drivers/video/backlight/gpio_backlight.c        |   4 +-
 drivers/video/backlight/hp680_bl.c              |   4 +-
 drivers/video/backlight/jornada720_bl.c         |   2 +-
 drivers/video/backlight/kb3886_bl.c             |   4 +-
 drivers/video/backlight/led_bl.c                |   4 +-
 drivers/video/backlight/lm3533_bl.c             |   4 +-
 drivers/video/backlight/locomolcd.c             |   4 +-
 drivers/video/backlight/lv5207lp.c              |   4 +-
 drivers/video/backlight/max8925_bl.c            |   8 +-
 drivers/video/backlight/pwm_bl.c                |   4 +-
 drivers/video/backlight/qcom-wled.c             |   4 +-
 drivers/video/backlight/tps65217_bl.c           |   4 +-
 drivers/video/backlight/wm831x_bl.c             |   8 +-
 drivers/video/fbdev/amba-clcd.c                 |  19 +-
 include/linux/backlight.h                       | 415 +++++++++++++++++++-----
 33 files changed, 536 insertions(+), 433 deletions(-)

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

* [PATCH v1 0/18] backlight updates
@ 2020-05-14 19:09 ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

The following series touches a lot of backlight things.

It starts by migrating users of of_find_backlight_by_node()
over to devm_of_find_backlight() to simplify code and to
use the preferred way to register backlight.

All the functions in the backlight core that is no longer
used by any drivers are then marked static to avoid
adding new users.

Then a new helper backlight_is_blank() is added.
This helper will simplify the implementation of update_status()
in almost all backlight drivers.

While surfing the code I really missed some documentation.
So I got a bit carried away and updated the documentation
for the backlight core and added it to kernel-doc.
The documentation express my current understanding.
Everything from spelling errors to outright wrong content
shall be anticipated - so please review!
We are all best helped if the documentation is correct
and up-to-date and it is readable.

In this process I identified that the backlight_bl driver
was no longer is use - so drop it.

The last patch is for now just an RFC patch that shows
the potential simplifications by introducing the
use of the backlight_is_blank() helper.
I may split it up later.

I have local patches to introduce backlight_is_blank()
in the remaining backlight drivers.
But they will await that this patch set matures a bit.

Everything builds, but so far no run-time testing.

	Sam

Sam Ravnborg (18):
      drm/omap: display: use devm_of_find_backlight
      drm/tilcdc: use devm_of_find_backlight
      video: amba-clcd: use devm_of_find_backlight
      backlight: make of_find_backlight static
      backlight: drop backlight_put()
      backlight: make of_find_backlight_by_node() static
      backlight: refactor fb_notifier_callback()
      backlight: add backlight_is_blank()
      backlight: improve backlight_ops documentation
      backlight: improve backlight_properties documentation
      backlight: improve backlight_device documentation
      backlight: document inline functions in backlight.h
      backlight: document enums in backlight.h
      backlight: remove the unused backlight_bl driver
      backlight: drop extern from prototypes
      backlight: add overview and update doc
      backlight: wire up kernel-doc documentation
      backlight: use backlight_is_blank() in all backlight drivers

 Documentation/gpu/backlight.rst                 |  12 +
 Documentation/gpu/index.rst                     |   1 +
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
 drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
 drivers/video/backlight/88pm860x_bl.c           |   8 +-
 drivers/video/backlight/Kconfig                 |   8 -
 drivers/video/backlight/Makefile                |   1 -
 drivers/video/backlight/adp5520_bl.c            |   5 +-
 drivers/video/backlight/adp8860_bl.c            |   5 +-
 drivers/video/backlight/adp8870_bl.c            |   5 +-
 drivers/video/backlight/as3711_bl.c             |   8 +-
 drivers/video/backlight/backlight.c             | 237 ++++++++------
 drivers/video/backlight/bd6107.c                |   4 +-
 drivers/video/backlight/corgi_lcd.c             |   5 +-
 drivers/video/backlight/cr_bllcd.c              |  22 +-
 drivers/video/backlight/da903x_bl.c             |   8 +-
 drivers/video/backlight/ep93xx_bl.c             |   3 +-
 drivers/video/backlight/generic_bl.c            | 110 -------
 drivers/video/backlight/gpio_backlight.c        |   4 +-
 drivers/video/backlight/hp680_bl.c              |   4 +-
 drivers/video/backlight/jornada720_bl.c         |   2 +-
 drivers/video/backlight/kb3886_bl.c             |   4 +-
 drivers/video/backlight/led_bl.c                |   4 +-
 drivers/video/backlight/lm3533_bl.c             |   4 +-
 drivers/video/backlight/locomolcd.c             |   4 +-
 drivers/video/backlight/lv5207lp.c              |   4 +-
 drivers/video/backlight/max8925_bl.c            |   8 +-
 drivers/video/backlight/pwm_bl.c                |   4 +-
 drivers/video/backlight/qcom-wled.c             |   4 +-
 drivers/video/backlight/tps65217_bl.c           |   4 +-
 drivers/video/backlight/wm831x_bl.c             |   8 +-
 drivers/video/fbdev/amba-clcd.c                 |  19 +-
 include/linux/backlight.h                       | 415 +++++++++++++++++++-----
 33 files changed, 536 insertions(+), 433 deletions(-)


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

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

* [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Zheng Bin <zhengbin13@huawei.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Enrico Weigelt <info@metux.net>
Cc: Allison Randal <allison@lohutok.net>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index 3484b5d4a91c..faca5c873bde 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1163,7 +1163,7 @@ static const struct omap_dss_driver dsicm_dss_driver = {
 static int dsicm_probe_of(struct platform_device *pdev)
 {
 	struct device_node *node = pdev->dev.of_node;
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
 	struct display_timing timing;
 	int err;
@@ -1216,17 +1216,15 @@ static int dsicm_probe_of(struct platform_device *pdev)
 		ddata->vddi = NULL;
 	}
 
-	backlight = of_parse_phandle(node, "backlight", 0);
-	if (backlight) {
-		ddata->extbldev = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!ddata->extbldev)
-			return -EPROBE_DEFER;
-	} else {
-		/* assume native backlight support */
+	/* If no backlight device is found assume native backlight support */
+	if (backlight)
+		ddata->extbldev = backlight;
+	else
 		ddata->use_dsi_backlight = true;
-	}
 
 	/* TODO: ulps */
 
-- 
2.25.1


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

* [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Zheng Bin <zhengbin13@huawei.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Enrico Weigelt <info@metux.net>
Cc: Allison Randal <allison@lohutok.net>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index 3484b5d4a91c..faca5c873bde 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1163,7 +1163,7 @@ static const struct omap_dss_driver dsicm_dss_driver = {
 static int dsicm_probe_of(struct platform_device *pdev)
 {
 	struct device_node *node = pdev->dev.of_node;
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
 	struct display_timing timing;
 	int err;
@@ -1216,17 +1216,15 @@ static int dsicm_probe_of(struct platform_device *pdev)
 		ddata->vddi = NULL;
 	}
 
-	backlight = of_parse_phandle(node, "backlight", 0);
-	if (backlight) {
-		ddata->extbldev = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!ddata->extbldev)
-			return -EPROBE_DEFER;
-	} else {
-		/* assume native backlight support */
+	/* If no backlight device is found assume native backlight support */
+	if (backlight)
+		ddata->extbldev = backlight;
+	else
 		ddata->use_dsi_backlight = true;
-	}
 
 	/* TODO: ulps */
 
-- 
2.25.1

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

* [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Zheng Bin <zhengbin13@huawei.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Enrico Weigelt <info@metux.net>
Cc: Allison Randal <allison@lohutok.net>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index 3484b5d4a91c..faca5c873bde 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1163,7 +1163,7 @@ static const struct omap_dss_driver dsicm_dss_driver = {
 static int dsicm_probe_of(struct platform_device *pdev)
 {
 	struct device_node *node = pdev->dev.of_node;
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
 	struct display_timing timing;
 	int err;
@@ -1216,17 +1216,15 @@ static int dsicm_probe_of(struct platform_device *pdev)
 		ddata->vddi = NULL;
 	}
 
-	backlight = of_parse_phandle(node, "backlight", 0);
-	if (backlight) {
-		ddata->extbldev = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!ddata->extbldev)
-			return -EPROBE_DEFER;
-	} else {
-		/* assume native backlight support */
+	/* If no backlight device is found assume native backlight support */
+	if (backlight)
+		ddata->extbldev = backlight;
+	else
 		ddata->use_dsi_backlight = true;
-	}
 
 	/* TODO: ulps */
 
-- 
2.25.1

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

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

* [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 12823d60c4e8..b207b2f19d42 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -299,7 +299,8 @@ static struct tilcdc_panel_info *of_get_panel_info(struct device_node *np)
 
 static int panel_probe(struct platform_device *pdev)
 {
-	struct device_node *bl_node, *node = pdev->dev.of_node;
+	struct device_node *node = pdev->dev.of_node;
+	struct backlight_device *backlight;
 	struct panel_module *panel_mod;
 	struct tilcdc_module *mod;
 	struct pinctrl *pinctrl;
@@ -315,16 +316,10 @@ static int panel_probe(struct platform_device *pdev)
 	if (!panel_mod)
 		return -ENOMEM;
 
-	bl_node = of_parse_phandle(node, "backlight", 0);
-	if (bl_node) {
-		panel_mod->backlight = of_find_backlight_by_node(bl_node);
-		of_node_put(bl_node);
-
-		if (!panel_mod->backlight)
-			return -EPROBE_DEFER;
-
-		dev_info(&pdev->dev, "found backlight\n");
-	}
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
+	panel_mod->backlight = backlight;
 
 	panel_mod->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
 							 GPIOD_OUT_LOW);
-- 
2.25.1


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

* [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 12823d60c4e8..b207b2f19d42 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -299,7 +299,8 @@ static struct tilcdc_panel_info *of_get_panel_info(struct device_node *np)
 
 static int panel_probe(struct platform_device *pdev)
 {
-	struct device_node *bl_node, *node = pdev->dev.of_node;
+	struct device_node *node = pdev->dev.of_node;
+	struct backlight_device *backlight;
 	struct panel_module *panel_mod;
 	struct tilcdc_module *mod;
 	struct pinctrl *pinctrl;
@@ -315,16 +316,10 @@ static int panel_probe(struct platform_device *pdev)
 	if (!panel_mod)
 		return -ENOMEM;
 
-	bl_node = of_parse_phandle(node, "backlight", 0);
-	if (bl_node) {
-		panel_mod->backlight = of_find_backlight_by_node(bl_node);
-		of_node_put(bl_node);
-
-		if (!panel_mod->backlight)
-			return -EPROBE_DEFER;
-
-		dev_info(&pdev->dev, "found backlight\n");
-	}
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
+	panel_mod->backlight = backlight;
 
 	panel_mod->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
 							 GPIOD_OUT_LOW);
-- 
2.25.1

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

* [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 12823d60c4e8..b207b2f19d42 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -299,7 +299,8 @@ static struct tilcdc_panel_info *of_get_panel_info(struct device_node *np)
 
 static int panel_probe(struct platform_device *pdev)
 {
-	struct device_node *bl_node, *node = pdev->dev.of_node;
+	struct device_node *node = pdev->dev.of_node;
+	struct backlight_device *backlight;
 	struct panel_module *panel_mod;
 	struct tilcdc_module *mod;
 	struct pinctrl *pinctrl;
@@ -315,16 +316,10 @@ static int panel_probe(struct platform_device *pdev)
 	if (!panel_mod)
 		return -ENOMEM;
 
-	bl_node = of_parse_phandle(node, "backlight", 0);
-	if (bl_node) {
-		panel_mod->backlight = of_find_backlight_by_node(bl_node);
-		of_node_put(bl_node);
-
-		if (!panel_mod->backlight)
-			return -EPROBE_DEFER;
-
-		dev_info(&pdev->dev, "found backlight\n");
-	}
+	backlight = devm_of_find_backlight(&pdev->dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
+	panel_mod->backlight = backlight;
 
 	panel_mod->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
 							 GPIOD_OUT_LOW);
-- 
2.25.1

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

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

* [PATCH v1 03/18] video: amba-clcd: use devm_of_find_backlight
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Douglas Anderson <dianders@chromium.org>
---
 drivers/video/fbdev/amba-clcd.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index c3d55fc6c4e0..b7682de412d8 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -602,20 +602,17 @@ static int clcdfb_snprintf_mode(char *buf, int size, struct fb_videomode *mode)
 			mode->refresh);
 }
 
-static int clcdfb_of_get_backlight(struct device_node *panel,
+static int clcdfb_of_get_backlight(struct device *dev,
 				   struct clcd_panel *clcd_panel)
 {
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 
-	/* Look up the optional backlight phandle */
-	backlight = of_parse_phandle(panel, "backlight", 0);
-	if (backlight) {
-		clcd_panel->backlight = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	/* Look up the optional backlight device */
+	backlight = devm_of_find_backlight(dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!clcd_panel->backlight)
-			return -EPROBE_DEFER;
-	}
+	clcd_panel->backlight = backlight;
 	return 0;
 }
 
@@ -717,7 +714,7 @@ static int clcdfb_of_init_display(struct clcd_fb *fb)
 	if (!panel)
 		return -ENODEV;
 
-	err = clcdfb_of_get_backlight(panel, fb->panel);
+	err = clcdfb_of_get_backlight(&fb->dev->dev, fb->panel);
 	if (err)
 		return err;
 
-- 
2.25.1


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

* [PATCH v1 03/18] video: amba-clcd: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Douglas Anderson <dianders@chromium.org>
---
 drivers/video/fbdev/amba-clcd.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index c3d55fc6c4e0..b7682de412d8 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -602,20 +602,17 @@ static int clcdfb_snprintf_mode(char *buf, int size, struct fb_videomode *mode)
 			mode->refresh);
 }
 
-static int clcdfb_of_get_backlight(struct device_node *panel,
+static int clcdfb_of_get_backlight(struct device *dev,
 				   struct clcd_panel *clcd_panel)
 {
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 
-	/* Look up the optional backlight phandle */
-	backlight = of_parse_phandle(panel, "backlight", 0);
-	if (backlight) {
-		clcd_panel->backlight = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	/* Look up the optional backlight device */
+	backlight = devm_of_find_backlight(dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!clcd_panel->backlight)
-			return -EPROBE_DEFER;
-	}
+	clcd_panel->backlight = backlight;
 	return 0;
 }
 
@@ -717,7 +714,7 @@ static int clcdfb_of_init_display(struct clcd_fb *fb)
 	if (!panel)
 		return -ENODEV;
 
-	err = clcdfb_of_get_backlight(panel, fb->panel);
+	err = clcdfb_of_get_backlight(&fb->dev->dev, fb->panel);
 	if (err)
 		return err;
 
-- 
2.25.1

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

* [PATCH v1 03/18] video: amba-clcd: use devm_of_find_backlight
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Look up backlight device using devm_of_find_backlight().
This simplifies the code and prevents us from hardcoding
the node name in the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Douglas Anderson <dianders@chromium.org>
---
 drivers/video/fbdev/amba-clcd.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index c3d55fc6c4e0..b7682de412d8 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -602,20 +602,17 @@ static int clcdfb_snprintf_mode(char *buf, int size, struct fb_videomode *mode)
 			mode->refresh);
 }
 
-static int clcdfb_of_get_backlight(struct device_node *panel,
+static int clcdfb_of_get_backlight(struct device *dev,
 				   struct clcd_panel *clcd_panel)
 {
-	struct device_node *backlight;
+	struct backlight_device *backlight;
 
-	/* Look up the optional backlight phandle */
-	backlight = of_parse_phandle(panel, "backlight", 0);
-	if (backlight) {
-		clcd_panel->backlight = of_find_backlight_by_node(backlight);
-		of_node_put(backlight);
+	/* Look up the optional backlight device */
+	backlight = devm_of_find_backlight(dev);
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
 
-		if (!clcd_panel->backlight)
-			return -EPROBE_DEFER;
-	}
+	clcd_panel->backlight = backlight;
 	return 0;
 }
 
@@ -717,7 +714,7 @@ static int clcdfb_of_init_display(struct clcd_fb *fb)
 	if (!panel)
 		return -ENODEV;
 
-	err = clcdfb_of_get_backlight(panel, fb->panel);
+	err = clcdfb_of_get_backlight(&fb->dev->dev, fb->panel);
 	if (err)
 		return err;
 
-- 
2.25.1

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

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

* [PATCH v1 04/18] backlight: make of_find_backlight static
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

There are no external users of of_find_backlight,
as they have all changed to use the managed version.
Make of_find_backlight static to prevent new external users.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 31 ++++++++++-------------------
 include/linux/backlight.h           |  6 ------
 2 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index cac3e35d7630..511bb382c584 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -600,22 +600,7 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 EXPORT_SYMBOL(of_find_backlight_by_node);
 #endif
 
-/**
- * of_find_backlight - Get backlight device
- * @dev: Device
- *
- * This function looks for a property named 'backlight' on the DT node
- * connected to @dev and looks up the backlight device.
- *
- * Call backlight_put() to drop the reference on the backlight device.
- *
- * Returns:
- * A pointer to the backlight device if found.
- * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
- * device is found.
- * NULL if there's no backlight property.
- */
-struct backlight_device *of_find_backlight(struct device *dev)
+static struct backlight_device *of_find_backlight(struct device *dev)
 {
 	struct backlight_device *bd = NULL;
 	struct device_node *np;
@@ -641,7 +626,6 @@ struct backlight_device *of_find_backlight(struct device *dev)
 
 	return bd;
 }
-EXPORT_SYMBOL(of_find_backlight);
 
 static void devm_backlight_release(void *data)
 {
@@ -652,9 +636,16 @@ static void devm_backlight_release(void *data)
  * devm_of_find_backlight - Resource-managed of_find_backlight()
  * @dev: Device
  *
- * Device managed version of of_find_backlight().
- * The reference on the backlight device is automatically
- * dropped on driver detach.
+ * This function looks for a property named 'backlight' on the DT node
+ * connected to @dev and looks up the backlight device.
+ * The lookup is device managed so the reference to the backlight device
+ * is automatically dropped on driver detach.
+ *
+ * Returns:
+ * A pointer to the backlight device if found.
+ * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
+ * device is found.
+ * NULL if there's no backlight property.
  */
 struct backlight_device *devm_of_find_backlight(struct device *dev)
 {
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c7d6b2e8c3b5..a0f03bb322d7 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -219,14 +219,8 @@ of_find_backlight_by_node(struct device_node *node)
 #endif
 
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
-struct backlight_device *of_find_backlight(struct device *dev);
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-static inline struct backlight_device *of_find_backlight(struct device *dev)
-{
-	return NULL;
-}
-
 static inline struct backlight_device *
 devm_of_find_backlight(struct device *dev)
 {
-- 
2.25.1


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

* [PATCH v1 04/18] backlight: make of_find_backlight static
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

There are no external users of of_find_backlight,
as they have all changed to use the managed version.
Make of_find_backlight static to prevent new external users.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 31 ++++++++++-------------------
 include/linux/backlight.h           |  6 ------
 2 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index cac3e35d7630..511bb382c584 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -600,22 +600,7 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 EXPORT_SYMBOL(of_find_backlight_by_node);
 #endif
 
-/**
- * of_find_backlight - Get backlight device
- * @dev: Device
- *
- * This function looks for a property named 'backlight' on the DT node
- * connected to @dev and looks up the backlight device.
- *
- * Call backlight_put() to drop the reference on the backlight device.
- *
- * Returns:
- * A pointer to the backlight device if found.
- * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
- * device is found.
- * NULL if there's no backlight property.
- */
-struct backlight_device *of_find_backlight(struct device *dev)
+static struct backlight_device *of_find_backlight(struct device *dev)
 {
 	struct backlight_device *bd = NULL;
 	struct device_node *np;
@@ -641,7 +626,6 @@ struct backlight_device *of_find_backlight(struct device *dev)
 
 	return bd;
 }
-EXPORT_SYMBOL(of_find_backlight);
 
 static void devm_backlight_release(void *data)
 {
@@ -652,9 +636,16 @@ static void devm_backlight_release(void *data)
  * devm_of_find_backlight - Resource-managed of_find_backlight()
  * @dev: Device
  *
- * Device managed version of of_find_backlight().
- * The reference on the backlight device is automatically
- * dropped on driver detach.
+ * This function looks for a property named 'backlight' on the DT node
+ * connected to @dev and looks up the backlight device.
+ * The lookup is device managed so the reference to the backlight device
+ * is automatically dropped on driver detach.
+ *
+ * Returns:
+ * A pointer to the backlight device if found.
+ * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
+ * device is found.
+ * NULL if there's no backlight property.
  */
 struct backlight_device *devm_of_find_backlight(struct device *dev)
 {
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c7d6b2e8c3b5..a0f03bb322d7 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -219,14 +219,8 @@ of_find_backlight_by_node(struct device_node *node)
 #endif
 
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
-struct backlight_device *of_find_backlight(struct device *dev);
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-static inline struct backlight_device *of_find_backlight(struct device *dev)
-{
-	return NULL;
-}
-
 static inline struct backlight_device *
 devm_of_find_backlight(struct device *dev)
 {
-- 
2.25.1

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

* [PATCH v1 04/18] backlight: make of_find_backlight static
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

There are no external users of of_find_backlight,
as they have all changed to use the managed version.
Make of_find_backlight static to prevent new external users.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 31 ++++++++++-------------------
 include/linux/backlight.h           |  6 ------
 2 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index cac3e35d7630..511bb382c584 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -600,22 +600,7 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 EXPORT_SYMBOL(of_find_backlight_by_node);
 #endif
 
-/**
- * of_find_backlight - Get backlight device
- * @dev: Device
- *
- * This function looks for a property named 'backlight' on the DT node
- * connected to @dev and looks up the backlight device.
- *
- * Call backlight_put() to drop the reference on the backlight device.
- *
- * Returns:
- * A pointer to the backlight device if found.
- * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
- * device is found.
- * NULL if there's no backlight property.
- */
-struct backlight_device *of_find_backlight(struct device *dev)
+static struct backlight_device *of_find_backlight(struct device *dev)
 {
 	struct backlight_device *bd = NULL;
 	struct device_node *np;
@@ -641,7 +626,6 @@ struct backlight_device *of_find_backlight(struct device *dev)
 
 	return bd;
 }
-EXPORT_SYMBOL(of_find_backlight);
 
 static void devm_backlight_release(void *data)
 {
@@ -652,9 +636,16 @@ static void devm_backlight_release(void *data)
  * devm_of_find_backlight - Resource-managed of_find_backlight()
  * @dev: Device
  *
- * Device managed version of of_find_backlight().
- * The reference on the backlight device is automatically
- * dropped on driver detach.
+ * This function looks for a property named 'backlight' on the DT node
+ * connected to @dev and looks up the backlight device.
+ * The lookup is device managed so the reference to the backlight device
+ * is automatically dropped on driver detach.
+ *
+ * Returns:
+ * A pointer to the backlight device if found.
+ * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
+ * device is found.
+ * NULL if there's no backlight property.
  */
 struct backlight_device *devm_of_find_backlight(struct device *dev)
 {
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c7d6b2e8c3b5..a0f03bb322d7 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -219,14 +219,8 @@ of_find_backlight_by_node(struct device_node *node)
 #endif
 
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
-struct backlight_device *of_find_backlight(struct device *dev);
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-static inline struct backlight_device *of_find_backlight(struct device *dev)
-{
-	return NULL;
-}
-
 static inline struct backlight_device *
 devm_of_find_backlight(struct device *dev)
 {
-- 
2.25.1

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

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

* [PATCH v1 05/18] backlight: drop backlight_put()
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

There are no external users of backlight_put().
Drop it and open code the two users in backlight.c.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c |  7 +++++--
 include/linux/backlight.h           | 10 ----------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 511bb382c584..547aa3e1a03a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -629,7 +629,10 @@ static struct backlight_device *of_find_backlight(struct device *dev)
 
 static void devm_backlight_release(void *data)
 {
-	backlight_put(data);
+	struct backlight_device *bd = data;
+
+	if (bd)
+		put_device(&bd->dev);
 }
 
 /**
@@ -657,7 +660,7 @@ struct backlight_device *devm_of_find_backlight(struct device *dev)
 		return bd;
 	ret = devm_add_action(dev, devm_backlight_release, bd);
 	if (ret) {
-		backlight_put(bd);
+		put_device(&bd->dev);
 		return ERR_PTR(ret);
 	}
 	return bd;
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index a0f03bb322d7..3d757a850b88 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,16 +165,6 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
-/**
- * backlight_put - Drop backlight reference
- * @bd: the backlight device to put
- */
-static inline void backlight_put(struct backlight_device *bd)
-{
-	if (bd)
-		put_device(&bd->dev);
-}
-
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1


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

* [PATCH v1 05/18] backlight: drop backlight_put()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

There are no external users of backlight_put().
Drop it and open code the two users in backlight.c.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c |  7 +++++--
 include/linux/backlight.h           | 10 ----------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 511bb382c584..547aa3e1a03a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -629,7 +629,10 @@ static struct backlight_device *of_find_backlight(struct device *dev)
 
 static void devm_backlight_release(void *data)
 {
-	backlight_put(data);
+	struct backlight_device *bd = data;
+
+	if (bd)
+		put_device(&bd->dev);
 }
 
 /**
@@ -657,7 +660,7 @@ struct backlight_device *devm_of_find_backlight(struct device *dev)
 		return bd;
 	ret = devm_add_action(dev, devm_backlight_release, bd);
 	if (ret) {
-		backlight_put(bd);
+		put_device(&bd->dev);
 		return ERR_PTR(ret);
 	}
 	return bd;
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index a0f03bb322d7..3d757a850b88 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,16 +165,6 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
-/**
- * backlight_put - Drop backlight reference
- * @bd: the backlight device to put
- */
-static inline void backlight_put(struct backlight_device *bd)
-{
-	if (bd)
-		put_device(&bd->dev);
-}
-
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1

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

* [PATCH v1 05/18] backlight: drop backlight_put()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

There are no external users of backlight_put().
Drop it and open code the two users in backlight.c.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c |  7 +++++--
 include/linux/backlight.h           | 10 ----------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 511bb382c584..547aa3e1a03a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -629,7 +629,10 @@ static struct backlight_device *of_find_backlight(struct device *dev)
 
 static void devm_backlight_release(void *data)
 {
-	backlight_put(data);
+	struct backlight_device *bd = data;
+
+	if (bd)
+		put_device(&bd->dev);
 }
 
 /**
@@ -657,7 +660,7 @@ struct backlight_device *devm_of_find_backlight(struct device *dev)
 		return bd;
 	ret = devm_add_action(dev, devm_backlight_release, bd);
 	if (ret) {
-		backlight_put(bd);
+		put_device(&bd->dev);
 		return ERR_PTR(ret);
 	}
 	return bd;
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index a0f03bb322d7..3d757a850b88 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,16 +165,6 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
-/**
- * backlight_put - Drop backlight reference
- * @bd: the backlight device to put
- */
-static inline void backlight_put(struct backlight_device *bd)
-{
-	if (bd)
-		put_device(&bd->dev);
-}
-
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1

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

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

* [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

There are no external users of of_find_backlight_by_node().
Make it static so we keep it that way.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 22 +++++++++-------------
 include/linux/backlight.h           | 10 ----------
 2 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 547aa3e1a03a..91dfcf4a2087 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
 	return dev->parent && dev->parent->of_node == data;
 }
 
-/**
- * of_find_backlight_by_node() - find backlight device by device-tree node
- * @node: device-tree node of the backlight device
- *
- * Returns a pointer to the backlight device corresponding to the given DT
- * node or NULL if no such backlight device exists or if the device hasn't
- * been probed yet.
- *
- * This function obtains a reference on the backlight device and it is the
- * caller's responsibility to drop the reference by calling put_device() on
- * the backlight device's .dev field.
- */
-struct backlight_device *of_find_backlight_by_node(struct device_node *node)
+/* Find backlight device by device-tree node */
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
 {
 	struct device *dev;
 
@@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 	return dev ? to_backlight_device(dev) : NULL;
 }
 EXPORT_SYMBOL(of_find_backlight_by_node);
+#else
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
+{
+	return NULL;
+}
 #endif
 
 static struct backlight_device *of_find_backlight(struct device *dev)
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 3d757a850b88..b7839ea9d00a 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -198,16 +198,6 @@ struct generic_bl_info {
 	void (*kick_battery)(void);
 };
 
-#ifdef CONFIG_OF
-struct backlight_device *of_find_backlight_by_node(struct device_node *node);
-#else
-static inline struct backlight_device *
-of_find_backlight_by_node(struct device_node *node)
-{
-	return NULL;
-}
-#endif
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1


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

* [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

There are no external users of of_find_backlight_by_node().
Make it static so we keep it that way.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 22 +++++++++-------------
 include/linux/backlight.h           | 10 ----------
 2 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 547aa3e1a03a..91dfcf4a2087 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
 	return dev->parent && dev->parent->of_node == data;
 }
 
-/**
- * of_find_backlight_by_node() - find backlight device by device-tree node
- * @node: device-tree node of the backlight device
- *
- * Returns a pointer to the backlight device corresponding to the given DT
- * node or NULL if no such backlight device exists or if the device hasn't
- * been probed yet.
- *
- * This function obtains a reference on the backlight device and it is the
- * caller's responsibility to drop the reference by calling put_device() on
- * the backlight device's .dev field.
- */
-struct backlight_device *of_find_backlight_by_node(struct device_node *node)
+/* Find backlight device by device-tree node */
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
 {
 	struct device *dev;
 
@@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 	return dev ? to_backlight_device(dev) : NULL;
 }
 EXPORT_SYMBOL(of_find_backlight_by_node);
+#else
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
+{
+	return NULL;
+}
 #endif
 
 static struct backlight_device *of_find_backlight(struct device *dev)
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 3d757a850b88..b7839ea9d00a 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -198,16 +198,6 @@ struct generic_bl_info {
 	void (*kick_battery)(void);
 };
 
-#ifdef CONFIG_OF
-struct backlight_device *of_find_backlight_by_node(struct device_node *node);
-#else
-static inline struct backlight_device *
-of_find_backlight_by_node(struct device_node *node)
-{
-	return NULL;
-}
-#endif
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1

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

* [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

There are no external users of of_find_backlight_by_node().
Make it static so we keep it that way.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 22 +++++++++-------------
 include/linux/backlight.h           | 10 ----------
 2 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 547aa3e1a03a..91dfcf4a2087 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
 	return dev->parent && dev->parent->of_node == data;
 }
 
-/**
- * of_find_backlight_by_node() - find backlight device by device-tree node
- * @node: device-tree node of the backlight device
- *
- * Returns a pointer to the backlight device corresponding to the given DT
- * node or NULL if no such backlight device exists or if the device hasn't
- * been probed yet.
- *
- * This function obtains a reference on the backlight device and it is the
- * caller's responsibility to drop the reference by calling put_device() on
- * the backlight device's .dev field.
- */
-struct backlight_device *of_find_backlight_by_node(struct device_node *node)
+/* Find backlight device by device-tree node */
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
 {
 	struct device *dev;
 
@@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
 	return dev ? to_backlight_device(dev) : NULL;
 }
 EXPORT_SYMBOL(of_find_backlight_by_node);
+#else
+static struct backlight_device *
+of_find_backlight_by_node(struct device_node *node)
+{
+	return NULL;
+}
 #endif
 
 static struct backlight_device *of_find_backlight(struct device *dev)
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 3d757a850b88..b7839ea9d00a 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -198,16 +198,6 @@ struct generic_bl_info {
 	void (*kick_battery)(void);
 };
 
-#ifdef CONFIG_OF
-struct backlight_device *of_find_backlight_by_node(struct device_node *node);
-#else
-static inline struct backlight_device *
-of_find_backlight_by_node(struct device_node *node)
-{
-	return NULL;
-}
-#endif
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1

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

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

* [PATCH v1 07/18] backlight: refactor fb_notifier_callback()
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Increase readability of fb_notifier_callback() by removing
a few indent levels.
No functional change.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 43 +++++++++++++++--------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 91dfcf4a2087..5e08f4f1c99a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -58,28 +58,29 @@ static int fb_notifier_callback(struct notifier_block *self,
 
 	bd = container_of(self, struct backlight_device, fb_notif);
 	mutex_lock(&bd->ops_lock);
-	if (bd->ops)
-		if (!bd->ops->check_fb ||
-		    bd->ops->check_fb(bd, evdata->info)) {
-			fb_blank = *(int *)evdata->data;
-			if (fb_blank == FB_BLANK_UNBLANK &&
-			    !bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = true;
-				if (!bd->use_count++) {
-					bd->props.state &= ~BL_CORE_FBBLANK;
-					bd->props.fb_blank = FB_BLANK_UNBLANK;
-					backlight_update_status(bd);
-				}
-			} else if (fb_blank != FB_BLANK_UNBLANK &&
-				   bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = false;
-				if (!(--bd->use_count)) {
-					bd->props.state |= BL_CORE_FBBLANK;
-					bd->props.fb_blank = fb_blank;
-					backlight_update_status(bd);
-				}
-			}
+
+	if (!bd->ops)
+		goto out;
+	if (bd->ops->check_fb && !bd->ops->check_fb(bd, evdata->info))
+		goto out;
+
+	fb_blank = *(int *)evdata->data;
+	if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = true;
+		if (!bd->use_count++) {
+			bd->props.state &= ~BL_CORE_FBBLANK;
+			bd->props.fb_blank = FB_BLANK_UNBLANK;
+			backlight_update_status(bd);
+		}
+	} else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = false;
+		if (!(--bd->use_count)) {
+			bd->props.state |= BL_CORE_FBBLANK;
+			bd->props.fb_blank = fb_blank;
+			backlight_update_status(bd);
 		}
+	}
+out:
 	mutex_unlock(&bd->ops_lock);
 	return 0;
 }
-- 
2.25.1


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

* [PATCH v1 07/18] backlight: refactor fb_notifier_callback()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Increase readability of fb_notifier_callback() by removing
a few indent levels.
No functional change.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 43 +++++++++++++++--------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 91dfcf4a2087..5e08f4f1c99a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -58,28 +58,29 @@ static int fb_notifier_callback(struct notifier_block *self,
 
 	bd = container_of(self, struct backlight_device, fb_notif);
 	mutex_lock(&bd->ops_lock);
-	if (bd->ops)
-		if (!bd->ops->check_fb ||
-		    bd->ops->check_fb(bd, evdata->info)) {
-			fb_blank = *(int *)evdata->data;
-			if (fb_blank == FB_BLANK_UNBLANK &&
-			    !bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = true;
-				if (!bd->use_count++) {
-					bd->props.state &= ~BL_CORE_FBBLANK;
-					bd->props.fb_blank = FB_BLANK_UNBLANK;
-					backlight_update_status(bd);
-				}
-			} else if (fb_blank != FB_BLANK_UNBLANK &&
-				   bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = false;
-				if (!(--bd->use_count)) {
-					bd->props.state |= BL_CORE_FBBLANK;
-					bd->props.fb_blank = fb_blank;
-					backlight_update_status(bd);
-				}
-			}
+
+	if (!bd->ops)
+		goto out;
+	if (bd->ops->check_fb && !bd->ops->check_fb(bd, evdata->info))
+		goto out;
+
+	fb_blank = *(int *)evdata->data;
+	if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = true;
+		if (!bd->use_count++) {
+			bd->props.state &= ~BL_CORE_FBBLANK;
+			bd->props.fb_blank = FB_BLANK_UNBLANK;
+			backlight_update_status(bd);
+		}
+	} else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = false;
+		if (!(--bd->use_count)) {
+			bd->props.state |= BL_CORE_FBBLANK;
+			bd->props.fb_blank = fb_blank;
+			backlight_update_status(bd);
 		}
+	}
+out:
 	mutex_unlock(&bd->ops_lock);
 	return 0;
 }
-- 
2.25.1

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

* [PATCH v1 07/18] backlight: refactor fb_notifier_callback()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Increase readability of fb_notifier_callback() by removing
a few indent levels.
No functional change.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 43 +++++++++++++++--------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 91dfcf4a2087..5e08f4f1c99a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -58,28 +58,29 @@ static int fb_notifier_callback(struct notifier_block *self,
 
 	bd = container_of(self, struct backlight_device, fb_notif);
 	mutex_lock(&bd->ops_lock);
-	if (bd->ops)
-		if (!bd->ops->check_fb ||
-		    bd->ops->check_fb(bd, evdata->info)) {
-			fb_blank = *(int *)evdata->data;
-			if (fb_blank == FB_BLANK_UNBLANK &&
-			    !bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = true;
-				if (!bd->use_count++) {
-					bd->props.state &= ~BL_CORE_FBBLANK;
-					bd->props.fb_blank = FB_BLANK_UNBLANK;
-					backlight_update_status(bd);
-				}
-			} else if (fb_blank != FB_BLANK_UNBLANK &&
-				   bd->fb_bl_on[node]) {
-				bd->fb_bl_on[node] = false;
-				if (!(--bd->use_count)) {
-					bd->props.state |= BL_CORE_FBBLANK;
-					bd->props.fb_blank = fb_blank;
-					backlight_update_status(bd);
-				}
-			}
+
+	if (!bd->ops)
+		goto out;
+	if (bd->ops->check_fb && !bd->ops->check_fb(bd, evdata->info))
+		goto out;
+
+	fb_blank = *(int *)evdata->data;
+	if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = true;
+		if (!bd->use_count++) {
+			bd->props.state &= ~BL_CORE_FBBLANK;
+			bd->props.fb_blank = FB_BLANK_UNBLANK;
+			backlight_update_status(bd);
+		}
+	} else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) {
+		bd->fb_bl_on[node] = false;
+		if (!(--bd->use_count)) {
+			bd->props.state |= BL_CORE_FBBLANK;
+			bd->props.fb_blank = fb_blank;
+			backlight_update_status(bd);
 		}
+	}
+out:
 	mutex_unlock(&bd->ops_lock);
 	return 0;
 }
-- 
2.25.1

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

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

* [PATCH v1 08/18] backlight: add backlight_is_blank()
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

The backlight support has two properties that express the state:
- power
- state

It is un-documented and easy to get wrong.
Add backlight_is_blank() helper to make it simpler for drivers
to get the check of the state correct.

A lot of drivers also includes checks for fb_blank.
This check is redundant when the state is checked
as thus not needed in this helper function.
Rolling out this helper to all relevant backlight drivers
will eliminate almost all accesses to fb_blank.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b7839ea9d00a..e67e926de1e2 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
+/**
+ * backlight_is_blank - Return true if display is expected to be blank
+ * @bd: the backlight device
+ *
+ * Display is expected to be blank if any of these is true::
+ *
+ *   1) if power in not UNBLANK
+ *   2) if state indicate BLANK or SUSPENDED
+ *
+ * Returns true if display is expected to be blank, false otherwise.
+ */
+static inline bool backlight_is_blank(struct backlight_device *bd)
+{
+	return bd->props.power != FB_BLANK_UNBLANK ||
+	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
+}
+
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1


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

* [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

The backlight support has two properties that express the state:
- power
- state

It is un-documented and easy to get wrong.
Add backlight_is_blank() helper to make it simpler for drivers
to get the check of the state correct.

A lot of drivers also includes checks for fb_blank.
This check is redundant when the state is checked
as thus not needed in this helper function.
Rolling out this helper to all relevant backlight drivers
will eliminate almost all accesses to fb_blank.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b7839ea9d00a..e67e926de1e2 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
+/**
+ * backlight_is_blank - Return true if display is expected to be blank
+ * @bd: the backlight device
+ *
+ * Display is expected to be blank if any of these is true::
+ *
+ *   1) if power in not UNBLANK
+ *   2) if state indicate BLANK or SUSPENDED
+ *
+ * Returns true if display is expected to be blank, false otherwise.
+ */
+static inline bool backlight_is_blank(struct backlight_device *bd)
+{
+	return bd->props.power != FB_BLANK_UNBLANK ||
+	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
+}
+
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1

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

* [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

The backlight support has two properties that express the state:
- power
- state

It is un-documented and easy to get wrong.
Add backlight_is_blank() helper to make it simpler for drivers
to get the check of the state correct.

A lot of drivers also includes checks for fb_blank.
This check is redundant when the state is checked
as thus not needed in this helper function.
Rolling out this helper to all relevant backlight drivers
will eliminate almost all accesses to fb_blank.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b7839ea9d00a..e67e926de1e2 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
 	return backlight_update_status(bd);
 }
 
+/**
+ * backlight_is_blank - Return true if display is expected to be blank
+ * @bd: the backlight device
+ *
+ * Display is expected to be blank if any of these is true::
+ *
+ *   1) if power in not UNBLANK
+ *   2) if state indicate BLANK or SUSPENDED
+ *
+ * Returns true if display is expected to be blank, false otherwise.
+ */
+static inline bool backlight_is_blank(struct backlight_device *bd)
+{
+	return bd->props.power != FB_BLANK_UNBLANK ||
+	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
+}
+
 extern struct backlight_device *backlight_device_register(const char *name,
 	struct device *dev, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props);
-- 
2.25.1

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

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

* [PATCH v1 09/18] backlight: improve backlight_ops documentation
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Improve the documentation for backlight_ops and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 60 +++++++++++++++++++++++++++++++++++----
 1 file changed, 54 insertions(+), 6 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index e67e926de1e2..51f0d0abea25 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -55,19 +55,67 @@ enum backlight_scale {
 struct backlight_device;
 struct fb_info;
 
+/**
+ * struct backlight_ops - backlight operations
+ *
+ * The backlight operations are specifed when the backlight device is registered.
+ */
 struct backlight_ops {
+	/**
+	 * @options:
+	 *
+	 * The options parameter is used to adjust the behaviour of the core.
+	 * Set BL_CORE_SUSPENDRESUME to get the update_status() operation called
+	 * upon suspend and resume.
+	 */
 	unsigned int options;
 
 #define BL_CORE_SUSPENDRESUME	(1 << 0)
 
-	/* Notify the backlight driver some property has changed */
+	/**
+	 * @update_status:
+	 *
+	 * Notify the backlight driver some property has changed.
+	 * The update_status operation is protected by the update_lock.
+	 *
+	 * The backlight driver is expected to use backlight_is_blank()
+	 * to check if the display is blanked and set brightness accordingly.
+	 * update_status() is called when any of the properties has changed.
+	 *
+	 * RETURNS:
+	 *
+	 * 0 on sucees, negative error code if any failure occured.
+	 */
 	int (*update_status)(struct backlight_device *);
-	/* Return the current backlight brightness (accounting for power,
-	   fb_blank etc.) */
+
+	/**
+	 * @get_brightness:
+	 *
+	 * Return the current backlight brightness.
+	 * The driver may implement this as a readback from the HW.
+	 * This operation is optional and if not present then the current brightness
+	 * property value is used.
+	 *
+	 * RETURNS:
+	 *
+	 * A brightness value which is 0 or a positive numer.
+	 * On failure a negative error code is returned.
+	 */
 	int (*get_brightness)(struct backlight_device *);
-	/* Check if given framebuffer device is the one bound to this backlight;
-	   return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */
-	int (*check_fb)(struct backlight_device *, struct fb_info *);
+
+	/**
+	 * @check_fb:
+	 *
+	 * Check if given framebuffer device is the one bound to this backlight.
+	 * This operation is optional and if not implemented it is assumed that the
+	 * fbdev is always the one bound to the backlight.
+	 *
+	 * RETURNS:
+	 *
+	 * If info is NULL or the info matches the fbdev bound to the backlight return true.
+	 * If info does not match the fbdev bound to the backlight return false.
+	 */
+	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
 /* This structure defines all the properties of a backlight */
-- 
2.25.1


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

* [PATCH v1 09/18] backlight: improve backlight_ops documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Improve the documentation for backlight_ops and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 60 +++++++++++++++++++++++++++++++++++----
 1 file changed, 54 insertions(+), 6 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index e67e926de1e2..51f0d0abea25 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -55,19 +55,67 @@ enum backlight_scale {
 struct backlight_device;
 struct fb_info;
 
+/**
+ * struct backlight_ops - backlight operations
+ *
+ * The backlight operations are specifed when the backlight device is registered.
+ */
 struct backlight_ops {
+	/**
+	 * @options:
+	 *
+	 * The options parameter is used to adjust the behaviour of the core.
+	 * Set BL_CORE_SUSPENDRESUME to get the update_status() operation called
+	 * upon suspend and resume.
+	 */
 	unsigned int options;
 
 #define BL_CORE_SUSPENDRESUME	(1 << 0)
 
-	/* Notify the backlight driver some property has changed */
+	/**
+	 * @update_status:
+	 *
+	 * Notify the backlight driver some property has changed.
+	 * The update_status operation is protected by the update_lock.
+	 *
+	 * The backlight driver is expected to use backlight_is_blank()
+	 * to check if the display is blanked and set brightness accordingly.
+	 * update_status() is called when any of the properties has changed.
+	 *
+	 * RETURNS:
+	 *
+	 * 0 on sucees, negative error code if any failure occured.
+	 */
 	int (*update_status)(struct backlight_device *);
-	/* Return the current backlight brightness (accounting for power,
-	   fb_blank etc.) */
+
+	/**
+	 * @get_brightness:
+	 *
+	 * Return the current backlight brightness.
+	 * The driver may implement this as a readback from the HW.
+	 * This operation is optional and if not present then the current brightness
+	 * property value is used.
+	 *
+	 * RETURNS:
+	 *
+	 * A brightness value which is 0 or a positive numer.
+	 * On failure a negative error code is returned.
+	 */
 	int (*get_brightness)(struct backlight_device *);
-	/* Check if given framebuffer device is the one bound to this backlight;
-	   return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */
-	int (*check_fb)(struct backlight_device *, struct fb_info *);
+
+	/**
+	 * @check_fb:
+	 *
+	 * Check if given framebuffer device is the one bound to this backlight.
+	 * This operation is optional and if not implemented it is assumed that the
+	 * fbdev is always the one bound to the backlight.
+	 *
+	 * RETURNS:
+	 *
+	 * If info is NULL or the info matches the fbdev bound to the backlight return true.
+	 * If info does not match the fbdev bound to the backlight return false.
+	 */
+	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
 /* This structure defines all the properties of a backlight */
-- 
2.25.1

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

* [PATCH v1 09/18] backlight: improve backlight_ops documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Improve the documentation for backlight_ops and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 60 +++++++++++++++++++++++++++++++++++----
 1 file changed, 54 insertions(+), 6 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index e67e926de1e2..51f0d0abea25 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -55,19 +55,67 @@ enum backlight_scale {
 struct backlight_device;
 struct fb_info;
 
+/**
+ * struct backlight_ops - backlight operations
+ *
+ * The backlight operations are specifed when the backlight device is registered.
+ */
 struct backlight_ops {
+	/**
+	 * @options:
+	 *
+	 * The options parameter is used to adjust the behaviour of the core.
+	 * Set BL_CORE_SUSPENDRESUME to get the update_status() operation called
+	 * upon suspend and resume.
+	 */
 	unsigned int options;
 
 #define BL_CORE_SUSPENDRESUME	(1 << 0)
 
-	/* Notify the backlight driver some property has changed */
+	/**
+	 * @update_status:
+	 *
+	 * Notify the backlight driver some property has changed.
+	 * The update_status operation is protected by the update_lock.
+	 *
+	 * The backlight driver is expected to use backlight_is_blank()
+	 * to check if the display is blanked and set brightness accordingly.
+	 * update_status() is called when any of the properties has changed.
+	 *
+	 * RETURNS:
+	 *
+	 * 0 on sucees, negative error code if any failure occured.
+	 */
 	int (*update_status)(struct backlight_device *);
-	/* Return the current backlight brightness (accounting for power,
-	   fb_blank etc.) */
+
+	/**
+	 * @get_brightness:
+	 *
+	 * Return the current backlight brightness.
+	 * The driver may implement this as a readback from the HW.
+	 * This operation is optional and if not present then the current brightness
+	 * property value is used.
+	 *
+	 * RETURNS:
+	 *
+	 * A brightness value which is 0 or a positive numer.
+	 * On failure a negative error code is returned.
+	 */
 	int (*get_brightness)(struct backlight_device *);
-	/* Check if given framebuffer device is the one bound to this backlight;
-	   return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */
-	int (*check_fb)(struct backlight_device *, struct fb_info *);
+
+	/**
+	 * @check_fb:
+	 *
+	 * Check if given framebuffer device is the one bound to this backlight.
+	 * This operation is optional and if not implemented it is assumed that the
+	 * fbdev is always the one bound to the backlight.
+	 *
+	 * RETURNS:
+	 *
+	 * If info is NULL or the info matches the fbdev bound to the backlight return true.
+	 * If info does not match the fbdev bound to the backlight return false.
+	 */
+	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
 /* This structure defines all the properties of a backlight */
-- 
2.25.1

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

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

* [PATCH v1 10/18] backlight: improve backlight_properties documentation
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Improve the documentation for backlight_properties and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 101 +++++++++++++++++++++++++++++++++-----
 1 file changed, 90 insertions(+), 11 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 51f0d0abea25..c81b77af44d4 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -118,28 +118,107 @@ struct backlight_ops {
 	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
-/* This structure defines all the properties of a backlight */
+/**
+ * struct backlight_properties - backlight properties
+ *
+ * This structure defines all the properties of a backlight.
+ */
 struct backlight_properties {
-	/* Current User requested brightness (0 - max_brightness) */
+	/**
+	 * @brightness:
+	 *
+	 * The current requested brightness by the user.
+	 * The backlight core makes sure the range is (0 - max_brightness)
+	 * when the brightness is set via the sysfs attribute:
+	 * /sys/class/backlight/<backlight>/brightness.
+	 *
+	 * This value can be set in the backlight_properties passed
+	 * to devm_backlight_device_register() to set a default brightness
+	 * value.
+	 */
 	int brightness;
-	/* Maximal value for brightness (read-only) */
+
+	/**
+	 * @max_brightness:
+	 *
+	 * The maximum brightness value.
+	 *
+	 * This value must be set in the backlight_properties passed
+	 * to devm_backlight_device_register().
+	 *
+	 * This property must not be modified by a driver except
+	 * before registering the backlight device as explained above.
+	 */
 	int max_brightness;
-	/* Current FB Power mode (0: full on, 1..3: power saving
-	   modes; 4: full off), see FB_BLANK_XXX */
+
+	/**
+	 * @power:
+	 *
+	 * The current power mode. User space configure the power mode using
+	 * the sysfs attribute: /sys/class/backlight/<backlight>/bl_power
+	 * When the power property is updated update_status() is called.
+	 *
+	 * The possible values are: (0: full on, 1..3: power saving
+	 * modes; 4: full off), see FB_BLANK_XXX.
+	 *
+	 * When the backlight device is enabled @power is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @power is set to FB_BLANK_POWERDOWN.
+	 */
 	int power;
-	/* FB Blanking active? (values as for power) */
-	/* Due to be removed, please use (state & BL_CORE_FBBLANK) */
+
+	/**
+	 * @fb_blank:
+	 *
+	 * When the FBIOBLANK ioctl is called fb_blank is set to the
+	 * blank parameter and the update_status() operation is called.
+	 *
+	 * When the backlight device is enabled @fb_blank is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @fb_blank is set to FB_BLANK_POWERDOWN.
+	 *
+	 * This property must not be modified by a driver.
+	 * The backlight driver shall never read this variable,
+	 * as the necessary info is avaialble via the state.
+	 *
+	 * fb_blank is deprecated and will be removed.
+	 */
 	int fb_blank;
-	/* Backlight type */
+
+	/**
+	 * @type:
+	 *
+	 * The type of backlight supported.
+	 * The backlight type allows userspace to make appropriate
+	 * policy desicions based on the backlight type.
+	 *
+	 * This value must be set in the backlight_properties
+	 * passed to devm_backlight_device_register().
+	 */
 	enum backlight_type type;
-	/* Flags used to signal drivers of state changes */
+
+	/**
+	 * @state:
+	 *
+	 * The state property is used to inform drivers of state changes
+	 * when the update_status() operation is called.
+	 * The state is a bitmask. BL_CORE_FBBLANK is set when the display
+	 * is expected to be blank. BL_CORE_SUSPENDED is set when the
+	 * driver is suspended.
+	 *
+	 * This property must not be modified by a driver.
+	 */
 	unsigned int state;
-	/* Type of the brightness scale (linear, non-linear, ...) */
-	enum backlight_scale scale;
 
 #define BL_CORE_SUSPENDED	(1 << 0)	/* backlight is suspended */
 #define BL_CORE_FBBLANK		(1 << 1)	/* backlight is under an fb blank event */
 
+	/**
+	 * @scale:
+	 *
+	 * The type of the brightness scale (linear, non-linear, ...)
+	 */
+	enum backlight_scale scale;
 };
 
 struct backlight_device {
-- 
2.25.1


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

* [PATCH v1 10/18] backlight: improve backlight_properties documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Improve the documentation for backlight_properties and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 101 +++++++++++++++++++++++++++++++++-----
 1 file changed, 90 insertions(+), 11 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 51f0d0abea25..c81b77af44d4 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -118,28 +118,107 @@ struct backlight_ops {
 	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
-/* This structure defines all the properties of a backlight */
+/**
+ * struct backlight_properties - backlight properties
+ *
+ * This structure defines all the properties of a backlight.
+ */
 struct backlight_properties {
-	/* Current User requested brightness (0 - max_brightness) */
+	/**
+	 * @brightness:
+	 *
+	 * The current requested brightness by the user.
+	 * The backlight core makes sure the range is (0 - max_brightness)
+	 * when the brightness is set via the sysfs attribute:
+	 * /sys/class/backlight/<backlight>/brightness.
+	 *
+	 * This value can be set in the backlight_properties passed
+	 * to devm_backlight_device_register() to set a default brightness
+	 * value.
+	 */
 	int brightness;
-	/* Maximal value for brightness (read-only) */
+
+	/**
+	 * @max_brightness:
+	 *
+	 * The maximum brightness value.
+	 *
+	 * This value must be set in the backlight_properties passed
+	 * to devm_backlight_device_register().
+	 *
+	 * This property must not be modified by a driver except
+	 * before registering the backlight device as explained above.
+	 */
 	int max_brightness;
-	/* Current FB Power mode (0: full on, 1..3: power saving
-	   modes; 4: full off), see FB_BLANK_XXX */
+
+	/**
+	 * @power:
+	 *
+	 * The current power mode. User space configure the power mode using
+	 * the sysfs attribute: /sys/class/backlight/<backlight>/bl_power
+	 * When the power property is updated update_status() is called.
+	 *
+	 * The possible values are: (0: full on, 1..3: power saving
+	 * modes; 4: full off), see FB_BLANK_XXX.
+	 *
+	 * When the backlight device is enabled @power is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @power is set to FB_BLANK_POWERDOWN.
+	 */
 	int power;
-	/* FB Blanking active? (values as for power) */
-	/* Due to be removed, please use (state & BL_CORE_FBBLANK) */
+
+	/**
+	 * @fb_blank:
+	 *
+	 * When the FBIOBLANK ioctl is called fb_blank is set to the
+	 * blank parameter and the update_status() operation is called.
+	 *
+	 * When the backlight device is enabled @fb_blank is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @fb_blank is set to FB_BLANK_POWERDOWN.
+	 *
+	 * This property must not be modified by a driver.
+	 * The backlight driver shall never read this variable,
+	 * as the necessary info is avaialble via the state.
+	 *
+	 * fb_blank is deprecated and will be removed.
+	 */
 	int fb_blank;
-	/* Backlight type */
+
+	/**
+	 * @type:
+	 *
+	 * The type of backlight supported.
+	 * The backlight type allows userspace to make appropriate
+	 * policy desicions based on the backlight type.
+	 *
+	 * This value must be set in the backlight_properties
+	 * passed to devm_backlight_device_register().
+	 */
 	enum backlight_type type;
-	/* Flags used to signal drivers of state changes */
+
+	/**
+	 * @state:
+	 *
+	 * The state property is used to inform drivers of state changes
+	 * when the update_status() operation is called.
+	 * The state is a bitmask. BL_CORE_FBBLANK is set when the display
+	 * is expected to be blank. BL_CORE_SUSPENDED is set when the
+	 * driver is suspended.
+	 *
+	 * This property must not be modified by a driver.
+	 */
 	unsigned int state;
-	/* Type of the brightness scale (linear, non-linear, ...) */
-	enum backlight_scale scale;
 
 #define BL_CORE_SUSPENDED	(1 << 0)	/* backlight is suspended */
 #define BL_CORE_FBBLANK		(1 << 1)	/* backlight is under an fb blank event */
 
+	/**
+	 * @scale:
+	 *
+	 * The type of the brightness scale (linear, non-linear, ...)
+	 */
+	enum backlight_scale scale;
 };
 
 struct backlight_device {
-- 
2.25.1

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

* [PATCH v1 10/18] backlight: improve backlight_properties documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Improve the documentation for backlight_properties and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 101 +++++++++++++++++++++++++++++++++-----
 1 file changed, 90 insertions(+), 11 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 51f0d0abea25..c81b77af44d4 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -118,28 +118,107 @@ struct backlight_ops {
 	int (*check_fb)(struct backlight_device *bd, struct fb_info *info);
 };
 
-/* This structure defines all the properties of a backlight */
+/**
+ * struct backlight_properties - backlight properties
+ *
+ * This structure defines all the properties of a backlight.
+ */
 struct backlight_properties {
-	/* Current User requested brightness (0 - max_brightness) */
+	/**
+	 * @brightness:
+	 *
+	 * The current requested brightness by the user.
+	 * The backlight core makes sure the range is (0 - max_brightness)
+	 * when the brightness is set via the sysfs attribute:
+	 * /sys/class/backlight/<backlight>/brightness.
+	 *
+	 * This value can be set in the backlight_properties passed
+	 * to devm_backlight_device_register() to set a default brightness
+	 * value.
+	 */
 	int brightness;
-	/* Maximal value for brightness (read-only) */
+
+	/**
+	 * @max_brightness:
+	 *
+	 * The maximum brightness value.
+	 *
+	 * This value must be set in the backlight_properties passed
+	 * to devm_backlight_device_register().
+	 *
+	 * This property must not be modified by a driver except
+	 * before registering the backlight device as explained above.
+	 */
 	int max_brightness;
-	/* Current FB Power mode (0: full on, 1..3: power saving
-	   modes; 4: full off), see FB_BLANK_XXX */
+
+	/**
+	 * @power:
+	 *
+	 * The current power mode. User space configure the power mode using
+	 * the sysfs attribute: /sys/class/backlight/<backlight>/bl_power
+	 * When the power property is updated update_status() is called.
+	 *
+	 * The possible values are: (0: full on, 1..3: power saving
+	 * modes; 4: full off), see FB_BLANK_XXX.
+	 *
+	 * When the backlight device is enabled @power is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @power is set to FB_BLANK_POWERDOWN.
+	 */
 	int power;
-	/* FB Blanking active? (values as for power) */
-	/* Due to be removed, please use (state & BL_CORE_FBBLANK) */
+
+	/**
+	 * @fb_blank:
+	 *
+	 * When the FBIOBLANK ioctl is called fb_blank is set to the
+	 * blank parameter and the update_status() operation is called.
+	 *
+	 * When the backlight device is enabled @fb_blank is set
+	 * to FB_BLANK_UNBLANK. When the backlight device is disabled
+	 * @fb_blank is set to FB_BLANK_POWERDOWN.
+	 *
+	 * This property must not be modified by a driver.
+	 * The backlight driver shall never read this variable,
+	 * as the necessary info is avaialble via the state.
+	 *
+	 * fb_blank is deprecated and will be removed.
+	 */
 	int fb_blank;
-	/* Backlight type */
+
+	/**
+	 * @type:
+	 *
+	 * The type of backlight supported.
+	 * The backlight type allows userspace to make appropriate
+	 * policy desicions based on the backlight type.
+	 *
+	 * This value must be set in the backlight_properties
+	 * passed to devm_backlight_device_register().
+	 */
 	enum backlight_type type;
-	/* Flags used to signal drivers of state changes */
+
+	/**
+	 * @state:
+	 *
+	 * The state property is used to inform drivers of state changes
+	 * when the update_status() operation is called.
+	 * The state is a bitmask. BL_CORE_FBBLANK is set when the display
+	 * is expected to be blank. BL_CORE_SUSPENDED is set when the
+	 * driver is suspended.
+	 *
+	 * This property must not be modified by a driver.
+	 */
 	unsigned int state;
-	/* Type of the brightness scale (linear, non-linear, ...) */
-	enum backlight_scale scale;
 
 #define BL_CORE_SUSPENDED	(1 << 0)	/* backlight is suspended */
 #define BL_CORE_FBBLANK		(1 << 1)	/* backlight is under an fb blank event */
 
+	/**
+	 * @scale:
+	 *
+	 * The type of the brightness scale (linear, non-linear, ...)
+	 */
+	enum backlight_scale scale;
 };
 
 struct backlight_device {
-- 
2.25.1

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

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

* [PATCH v1 11/18] backlight: improve backlight_device documentation
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Improve the documentation for backlight_device and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 81 ++++++++++++++++++++++++++++-----------
 1 file changed, 58 insertions(+), 23 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c81b77af44d4..34ba1e444334 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,21 +14,6 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
-/* Notes on locking:
- *
- * backlight_device->ops_lock is an internal backlight lock protecting the
- * ops pointer and no code outside the core should need to touch it.
- *
- * Access to update_status() is serialised by the update_lock mutex since
- * most drivers seem to need this and historically get it wrong.
- *
- * Most drivers don't need locking on their get_brightness() method.
- * If yours does, you need to implement it in the driver. You can use the
- * update_lock mutex if appropriate.
- *
- * Any other use of the locks below is probably wrong.
- */
-
 enum backlight_update_reason {
 	BACKLIGHT_UPDATE_HOTKEY,
 	BACKLIGHT_UPDATE_SYSFS,
@@ -221,30 +206,80 @@ struct backlight_properties {
 	enum backlight_scale scale;
 };
 
+/**
+ * struct backlight_device - backlight device data
+ *
+ * This structure holds all data required by a backlight device.
+ */
 struct backlight_device {
-	/* Backlight properties */
+	/**
+	 * @props:
+	 *
+	 * Backlight properties
+	 */
 	struct backlight_properties props;
 
-	/* Serialise access to update_status method */
+	/**
+	 * @update_lock:
+	 *
+	 * update_lock is an internal backlight lock that serialise access
+	 * to the update_status() method. The iupdate_lock mutex shall not be used
+	 * by backlight drivers.
+	 */
 	struct mutex update_lock;
 
-	/* This protects the 'ops' field. If 'ops' is NULL, the driver that
-	   registered this device has been unloaded, and if class_get_devdata()
-	   points to something in the body of that driver, it is also invalid. */
+	/**
+	 * @ops_lock:
+	 *
+	 * ops_lock is an internal backlight lock that protects the ops pointer
+	 * and is used around all accesses to ops and when the operations are
+	 * invoked. The mutex shall not be used by backlight drivers.
+	 */
 	struct mutex ops_lock;
+
+	/**
+	 * @ops:
+	 *
+	 * Pointer to the backlight operations. If ops is NULL, the driver that
+	 * registered this device has been unloaded, and if class_get_devdata()
+	 * points to something in the body of that driver, it is also invalid.
+	 */
 	const struct backlight_ops *ops;
 
-	/* The framebuffer notifier block */
+	/**
+	 * @fb_notif:
+	 *
+	 * The framebuffer notifier block
+	 */
 	struct notifier_block fb_notif;
 
-	/* list entry of all registered backlight devices */
+	/**
+	 * @entry:
+	 *
+	 * List entry of all registered backlight devices
+	 */
 	struct list_head entry;
 
+	/**
+	 * @dev:
+	 *
+	 * Parent device.
+	 */
 	struct device dev;
 
-	/* Multiple framebuffers may share one backlight device */
+	/**
+	 * @fb_bl_on:
+	 *
+	 * Multiple fbdev's may share one backlight device. The fb_bl_on
+	 * records the state of the individual fbdev.
+	 */
 	bool fb_bl_on[FB_MAX];
 
+	/**
+	 * @use_count:
+	 *
+	 * The number of uses of fb_bl_on.
+	 */
 	int use_count;
 };
 
-- 
2.25.1


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

* [PATCH v1 11/18] backlight: improve backlight_device documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Improve the documentation for backlight_device and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 81 ++++++++++++++++++++++++++++-----------
 1 file changed, 58 insertions(+), 23 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c81b77af44d4..34ba1e444334 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,21 +14,6 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
-/* Notes on locking:
- *
- * backlight_device->ops_lock is an internal backlight lock protecting the
- * ops pointer and no code outside the core should need to touch it.
- *
- * Access to update_status() is serialised by the update_lock mutex since
- * most drivers seem to need this and historically get it wrong.
- *
- * Most drivers don't need locking on their get_brightness() method.
- * If yours does, you need to implement it in the driver. You can use the
- * update_lock mutex if appropriate.
- *
- * Any other use of the locks below is probably wrong.
- */
-
 enum backlight_update_reason {
 	BACKLIGHT_UPDATE_HOTKEY,
 	BACKLIGHT_UPDATE_SYSFS,
@@ -221,30 +206,80 @@ struct backlight_properties {
 	enum backlight_scale scale;
 };
 
+/**
+ * struct backlight_device - backlight device data
+ *
+ * This structure holds all data required by a backlight device.
+ */
 struct backlight_device {
-	/* Backlight properties */
+	/**
+	 * @props:
+	 *
+	 * Backlight properties
+	 */
 	struct backlight_properties props;
 
-	/* Serialise access to update_status method */
+	/**
+	 * @update_lock:
+	 *
+	 * update_lock is an internal backlight lock that serialise access
+	 * to the update_status() method. The iupdate_lock mutex shall not be used
+	 * by backlight drivers.
+	 */
 	struct mutex update_lock;
 
-	/* This protects the 'ops' field. If 'ops' is NULL, the driver that
-	   registered this device has been unloaded, and if class_get_devdata()
-	   points to something in the body of that driver, it is also invalid. */
+	/**
+	 * @ops_lock:
+	 *
+	 * ops_lock is an internal backlight lock that protects the ops pointer
+	 * and is used around all accesses to ops and when the operations are
+	 * invoked. The mutex shall not be used by backlight drivers.
+	 */
 	struct mutex ops_lock;
+
+	/**
+	 * @ops:
+	 *
+	 * Pointer to the backlight operations. If ops is NULL, the driver that
+	 * registered this device has been unloaded, and if class_get_devdata()
+	 * points to something in the body of that driver, it is also invalid.
+	 */
 	const struct backlight_ops *ops;
 
-	/* The framebuffer notifier block */
+	/**
+	 * @fb_notif:
+	 *
+	 * The framebuffer notifier block
+	 */
 	struct notifier_block fb_notif;
 
-	/* list entry of all registered backlight devices */
+	/**
+	 * @entry:
+	 *
+	 * List entry of all registered backlight devices
+	 */
 	struct list_head entry;
 
+	/**
+	 * @dev:
+	 *
+	 * Parent device.
+	 */
 	struct device dev;
 
-	/* Multiple framebuffers may share one backlight device */
+	/**
+	 * @fb_bl_on:
+	 *
+	 * Multiple fbdev's may share one backlight device. The fb_bl_on
+	 * records the state of the individual fbdev.
+	 */
 	bool fb_bl_on[FB_MAX];
 
+	/**
+	 * @use_count:
+	 *
+	 * The number of uses of fb_bl_on.
+	 */
 	int use_count;
 };
 
-- 
2.25.1

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

* [PATCH v1 11/18] backlight: improve backlight_device documentation
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Improve the documentation for backlight_device and
adapt it to kernel-doc style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 81 ++++++++++++++++++++++++++++-----------
 1 file changed, 58 insertions(+), 23 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index c81b77af44d4..34ba1e444334 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,21 +14,6 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
-/* Notes on locking:
- *
- * backlight_device->ops_lock is an internal backlight lock protecting the
- * ops pointer and no code outside the core should need to touch it.
- *
- * Access to update_status() is serialised by the update_lock mutex since
- * most drivers seem to need this and historically get it wrong.
- *
- * Most drivers don't need locking on their get_brightness() method.
- * If yours does, you need to implement it in the driver. You can use the
- * update_lock mutex if appropriate.
- *
- * Any other use of the locks below is probably wrong.
- */
-
 enum backlight_update_reason {
 	BACKLIGHT_UPDATE_HOTKEY,
 	BACKLIGHT_UPDATE_SYSFS,
@@ -221,30 +206,80 @@ struct backlight_properties {
 	enum backlight_scale scale;
 };
 
+/**
+ * struct backlight_device - backlight device data
+ *
+ * This structure holds all data required by a backlight device.
+ */
 struct backlight_device {
-	/* Backlight properties */
+	/**
+	 * @props:
+	 *
+	 * Backlight properties
+	 */
 	struct backlight_properties props;
 
-	/* Serialise access to update_status method */
+	/**
+	 * @update_lock:
+	 *
+	 * update_lock is an internal backlight lock that serialise access
+	 * to the update_status() method. The iupdate_lock mutex shall not be used
+	 * by backlight drivers.
+	 */
 	struct mutex update_lock;
 
-	/* This protects the 'ops' field. If 'ops' is NULL, the driver that
-	   registered this device has been unloaded, and if class_get_devdata()
-	   points to something in the body of that driver, it is also invalid. */
+	/**
+	 * @ops_lock:
+	 *
+	 * ops_lock is an internal backlight lock that protects the ops pointer
+	 * and is used around all accesses to ops and when the operations are
+	 * invoked. The mutex shall not be used by backlight drivers.
+	 */
 	struct mutex ops_lock;
+
+	/**
+	 * @ops:
+	 *
+	 * Pointer to the backlight operations. If ops is NULL, the driver that
+	 * registered this device has been unloaded, and if class_get_devdata()
+	 * points to something in the body of that driver, it is also invalid.
+	 */
 	const struct backlight_ops *ops;
 
-	/* The framebuffer notifier block */
+	/**
+	 * @fb_notif:
+	 *
+	 * The framebuffer notifier block
+	 */
 	struct notifier_block fb_notif;
 
-	/* list entry of all registered backlight devices */
+	/**
+	 * @entry:
+	 *
+	 * List entry of all registered backlight devices
+	 */
 	struct list_head entry;
 
+	/**
+	 * @dev:
+	 *
+	 * Parent device.
+	 */
 	struct device dev;
 
-	/* Multiple framebuffers may share one backlight device */
+	/**
+	 * @fb_bl_on:
+	 *
+	 * Multiple fbdev's may share one backlight device. The fb_bl_on
+	 * records the state of the individual fbdev.
+	 */
 	bool fb_bl_on[FB_MAX];
 
+	/**
+	 * @use_count:
+	 *
+	 * The number of uses of fb_bl_on.
+	 */
 	int use_count;
 };
 
-- 
2.25.1

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

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

* [PATCH v1 12/18] backlight: document inline functions in backlight.h
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Add documentation for the inline functions in backlight.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 34ba1e444334..b8e78549a48c 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -283,6 +283,10 @@ struct backlight_device {
 	int use_count;
 };
 
+/**
+ * backlight_update_status - force an update of the backligt device status
+ * @bd: the backlight device
+ */
 static inline int backlight_update_status(struct backlight_device *bd)
 {
 	int ret = -ENOENT;
@@ -363,6 +367,18 @@ extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
+/**
+ * bl_get_data - access devdata
+ * @bl_dev: pointer to backlight device
+ *
+ * When a backlight device is registered the driver has the possibility
+ * to supply a void * devdata. bl_get_data() return a pointer to the
+ * devdata.
+ *
+ * RETURNS:
+ *
+ * pointer to devdata stored while registering the backlight device.
+ */
 static inline void * bl_get_data(struct backlight_device *bl_dev)
 {
 	return dev_get_drvdata(&bl_dev->dev);
-- 
2.25.1


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

* [PATCH v1 12/18] backlight: document inline functions in backlight.h
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Add documentation for the inline functions in backlight.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 34ba1e444334..b8e78549a48c 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -283,6 +283,10 @@ struct backlight_device {
 	int use_count;
 };
 
+/**
+ * backlight_update_status - force an update of the backligt device status
+ * @bd: the backlight device
+ */
 static inline int backlight_update_status(struct backlight_device *bd)
 {
 	int ret = -ENOENT;
@@ -363,6 +367,18 @@ extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
+/**
+ * bl_get_data - access devdata
+ * @bl_dev: pointer to backlight device
+ *
+ * When a backlight device is registered the driver has the possibility
+ * to supply a void * devdata. bl_get_data() return a pointer to the
+ * devdata.
+ *
+ * RETURNS:
+ *
+ * pointer to devdata stored while registering the backlight device.
+ */
 static inline void * bl_get_data(struct backlight_device *bl_dev)
 {
 	return dev_get_drvdata(&bl_dev->dev);
-- 
2.25.1

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

* [PATCH v1 12/18] backlight: document inline functions in backlight.h
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Add documentation for the inline functions in backlight.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 34ba1e444334..b8e78549a48c 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -283,6 +283,10 @@ struct backlight_device {
 	int use_count;
 };
 
+/**
+ * backlight_update_status - force an update of the backligt device status
+ * @bd: the backlight device
+ */
 static inline int backlight_update_status(struct backlight_device *bd)
 {
 	int ret = -ENOENT;
@@ -363,6 +367,18 @@ extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
+/**
+ * bl_get_data - access devdata
+ * @bl_dev: pointer to backlight device
+ *
+ * When a backlight device is registered the driver has the possibility
+ * to supply a void * devdata. bl_get_data() return a pointer to the
+ * devdata.
+ *
+ * RETURNS:
+ *
+ * pointer to devdata stored while registering the backlight device.
+ */
 static inline void * bl_get_data(struct backlight_device *bl_dev)
 {
 	return dev_get_drvdata(&bl_dev->dev);
-- 
2.25.1

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

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

* [PATCH v1 13/18] backlight: document enums in backlight.h
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Add kernel-doc documentation for the backlight enums

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 84 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b8e78549a48c..bedc0c9885b6 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,26 +14,110 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
+/**
+ * enum backlight_update_reason - what method was used to update backlight
+ *
+ * A driver indicates the method (reason) used for updating the backlight
+ * when calling backlight_force_update().
+ */
 enum backlight_update_reason {
+	/**
+	 * @BACKLIGHT_UPDATE_HOTKEY:
+	 *
+	 * The backlight was updated using a hot-key.
+	 */
 	BACKLIGHT_UPDATE_HOTKEY,
+
+	/**
+	 * @BACKLIGHT_UPDATE_SYSFS:
+	 *
+	 * The backlight was updated using sysfs.
+	 */
 	BACKLIGHT_UPDATE_SYSFS,
 };
 
+/**
+ * enum backlight_type - the type of backlight control
+ *
+ * The type of interface used to control the backlight.
+ */
 enum backlight_type {
+	/**
+	 * @BACKLIGHT_RAW:
+	 *
+	 * The backlight is controlled using hardware registers directly.
+	 */
 	BACKLIGHT_RAW = 1,
+
+	/**
+	 * @BACKLIGHT_PLATFORM:
+	 *
+	 * The backlight is controller using a platform-specific interface.
+	 */
 	BACKLIGHT_PLATFORM,
+
+	/**
+	 * @BACKLIGHT_FIRMWARE:
+	 *
+	 * The backlight is controlled using a standard firmware interface.
+	 */
 	BACKLIGHT_FIRMWARE,
+
+	/**
+	 * @BACKLIGHT_TYPE_MAX: Number of entries.
+	 */
 	BACKLIGHT_TYPE_MAX,
 };
 
+/**
+ * enum backlight_notification - the type of notification
+ *
+ * The notifications that is used for notification sent to the receiver
+ * that registered notifications using backlight_register_notifier().
+ */
 enum backlight_notification {
+	/**
+	 * @BACKLIGHT_REGISTERED:
+	 *
+	 * The backlight device is registered.
+	 */
 	BACKLIGHT_REGISTERED,
+
+	/**
+	 * @BACKLIGHT_UNREGISTERED:
+	 *
+	 * The backlight revice is unregistered.
+	 */
 	BACKLIGHT_UNREGISTERED,
 };
 
+/** enum backlight_scale - the type of scale used for brightness values
+ *
+ * The type of scale used for brightness values.
+ */
 enum backlight_scale {
+	/**
+	 * @BACKLIGHT_SCALE_UNKNOWN:
+	 *
+	 * The scale is unknown.
+	 */
 	BACKLIGHT_SCALE_UNKNOWN = 0,
+
+	/**
+	 * @BACKLIGHT_SCALE_LINEAR:
+	 *
+	 * The scale is linear, so the brigness increase is the same
+	 * when increasing with the same steps (more or less).
+	 */
 	BACKLIGHT_SCALE_LINEAR,
+
+	/**
+	 * @BACKLIGHT_SCALE_NON_LINEAR:
+	 *
+	 * The scale is not linear. This is often used when the brightness
+	 * values tries to adjust to the relative perception of the eye
+	 * demanding a non-linear scale.
+	 */
 	BACKLIGHT_SCALE_NON_LINEAR,
 };
 
-- 
2.25.1


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

* [PATCH v1 13/18] backlight: document enums in backlight.h
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Add kernel-doc documentation for the backlight enums

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 84 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b8e78549a48c..bedc0c9885b6 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,26 +14,110 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
+/**
+ * enum backlight_update_reason - what method was used to update backlight
+ *
+ * A driver indicates the method (reason) used for updating the backlight
+ * when calling backlight_force_update().
+ */
 enum backlight_update_reason {
+	/**
+	 * @BACKLIGHT_UPDATE_HOTKEY:
+	 *
+	 * The backlight was updated using a hot-key.
+	 */
 	BACKLIGHT_UPDATE_HOTKEY,
+
+	/**
+	 * @BACKLIGHT_UPDATE_SYSFS:
+	 *
+	 * The backlight was updated using sysfs.
+	 */
 	BACKLIGHT_UPDATE_SYSFS,
 };
 
+/**
+ * enum backlight_type - the type of backlight control
+ *
+ * The type of interface used to control the backlight.
+ */
 enum backlight_type {
+	/**
+	 * @BACKLIGHT_RAW:
+	 *
+	 * The backlight is controlled using hardware registers directly.
+	 */
 	BACKLIGHT_RAW = 1,
+
+	/**
+	 * @BACKLIGHT_PLATFORM:
+	 *
+	 * The backlight is controller using a platform-specific interface.
+	 */
 	BACKLIGHT_PLATFORM,
+
+	/**
+	 * @BACKLIGHT_FIRMWARE:
+	 *
+	 * The backlight is controlled using a standard firmware interface.
+	 */
 	BACKLIGHT_FIRMWARE,
+
+	/**
+	 * @BACKLIGHT_TYPE_MAX: Number of entries.
+	 */
 	BACKLIGHT_TYPE_MAX,
 };
 
+/**
+ * enum backlight_notification - the type of notification
+ *
+ * The notifications that is used for notification sent to the receiver
+ * that registered notifications using backlight_register_notifier().
+ */
 enum backlight_notification {
+	/**
+	 * @BACKLIGHT_REGISTERED:
+	 *
+	 * The backlight device is registered.
+	 */
 	BACKLIGHT_REGISTERED,
+
+	/**
+	 * @BACKLIGHT_UNREGISTERED:
+	 *
+	 * The backlight revice is unregistered.
+	 */
 	BACKLIGHT_UNREGISTERED,
 };
 
+/** enum backlight_scale - the type of scale used for brightness values
+ *
+ * The type of scale used for brightness values.
+ */
 enum backlight_scale {
+	/**
+	 * @BACKLIGHT_SCALE_UNKNOWN:
+	 *
+	 * The scale is unknown.
+	 */
 	BACKLIGHT_SCALE_UNKNOWN = 0,
+
+	/**
+	 * @BACKLIGHT_SCALE_LINEAR:
+	 *
+	 * The scale is linear, so the brigness increase is the same
+	 * when increasing with the same steps (more or less).
+	 */
 	BACKLIGHT_SCALE_LINEAR,
+
+	/**
+	 * @BACKLIGHT_SCALE_NON_LINEAR:
+	 *
+	 * The scale is not linear. This is often used when the brightness
+	 * values tries to adjust to the relative perception of the eye
+	 * demanding a non-linear scale.
+	 */
 	BACKLIGHT_SCALE_NON_LINEAR,
 };
 
-- 
2.25.1

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

* [PATCH v1 13/18] backlight: document enums in backlight.h
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Add kernel-doc documentation for the backlight enums

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 84 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index b8e78549a48c..bedc0c9885b6 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -14,26 +14,110 @@
 #include <linux/mutex.h>
 #include <linux/notifier.h>
 
+/**
+ * enum backlight_update_reason - what method was used to update backlight
+ *
+ * A driver indicates the method (reason) used for updating the backlight
+ * when calling backlight_force_update().
+ */
 enum backlight_update_reason {
+	/**
+	 * @BACKLIGHT_UPDATE_HOTKEY:
+	 *
+	 * The backlight was updated using a hot-key.
+	 */
 	BACKLIGHT_UPDATE_HOTKEY,
+
+	/**
+	 * @BACKLIGHT_UPDATE_SYSFS:
+	 *
+	 * The backlight was updated using sysfs.
+	 */
 	BACKLIGHT_UPDATE_SYSFS,
 };
 
+/**
+ * enum backlight_type - the type of backlight control
+ *
+ * The type of interface used to control the backlight.
+ */
 enum backlight_type {
+	/**
+	 * @BACKLIGHT_RAW:
+	 *
+	 * The backlight is controlled using hardware registers directly.
+	 */
 	BACKLIGHT_RAW = 1,
+
+	/**
+	 * @BACKLIGHT_PLATFORM:
+	 *
+	 * The backlight is controller using a platform-specific interface.
+	 */
 	BACKLIGHT_PLATFORM,
+
+	/**
+	 * @BACKLIGHT_FIRMWARE:
+	 *
+	 * The backlight is controlled using a standard firmware interface.
+	 */
 	BACKLIGHT_FIRMWARE,
+
+	/**
+	 * @BACKLIGHT_TYPE_MAX: Number of entries.
+	 */
 	BACKLIGHT_TYPE_MAX,
 };
 
+/**
+ * enum backlight_notification - the type of notification
+ *
+ * The notifications that is used for notification sent to the receiver
+ * that registered notifications using backlight_register_notifier().
+ */
 enum backlight_notification {
+	/**
+	 * @BACKLIGHT_REGISTERED:
+	 *
+	 * The backlight device is registered.
+	 */
 	BACKLIGHT_REGISTERED,
+
+	/**
+	 * @BACKLIGHT_UNREGISTERED:
+	 *
+	 * The backlight revice is unregistered.
+	 */
 	BACKLIGHT_UNREGISTERED,
 };
 
+/** enum backlight_scale - the type of scale used for brightness values
+ *
+ * The type of scale used for brightness values.
+ */
 enum backlight_scale {
+	/**
+	 * @BACKLIGHT_SCALE_UNKNOWN:
+	 *
+	 * The scale is unknown.
+	 */
 	BACKLIGHT_SCALE_UNKNOWN = 0,
+
+	/**
+	 * @BACKLIGHT_SCALE_LINEAR:
+	 *
+	 * The scale is linear, so the brigness increase is the same
+	 * when increasing with the same steps (more or less).
+	 */
 	BACKLIGHT_SCALE_LINEAR,
+
+	/**
+	 * @BACKLIGHT_SCALE_NON_LINEAR:
+	 *
+	 * The scale is not linear. This is often used when the brightness
+	 * values tries to adjust to the relative perception of the eye
+	 * demanding a non-linear scale.
+	 */
 	BACKLIGHT_SCALE_NON_LINEAR,
 };
 
-- 
2.25.1

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

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

* [PATCH v1 14/18] backlight: remove the unused backlight_bl driver
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

The driver required initialization using struct generic_bl_info.
As there are no more references to this struct there is no users left.
So it is safe to delete the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/Kconfig      |   8 --
 drivers/video/backlight/Makefile     |   1 -
 drivers/video/backlight/generic_bl.c | 110 ---------------------------
 include/linux/backlight.h            |   9 ---
 4 files changed, 128 deletions(-)
 delete mode 100644 drivers/video/backlight/generic_bl.c

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 7d22d7377606..14abfeee8868 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -173,14 +173,6 @@ config BACKLIGHT_EP93XX
 	  To compile this driver as a module, choose M here: the module will
 	  be called ep93xx_bl.
 
-config BACKLIGHT_GENERIC
-	tristate "Generic (aka Sharp Corgi) Backlight Driver"
-	default y
-	help
-	  Say y to enable the generic platform backlight driver previously
-	  known as the Corgi backlight driver. If you have a Sharp Zaurus
-	  SL-C7xx, SL-Cxx00 or SL-6000x say y.
-
 config BACKLIGHT_IPAQ_MICRO
 	tristate "iPAQ microcontroller backlight driver"
 	depends on MFD_IPAQ_MICRO
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index 0c1a1524627a..9b998cfdc56d 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -31,7 +31,6 @@ obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE)	+= backlight.o
 obj-$(CONFIG_BACKLIGHT_DA903X)		+= da903x_bl.o
 obj-$(CONFIG_BACKLIGHT_DA9052)		+= da9052_bl.o
 obj-$(CONFIG_BACKLIGHT_EP93XX)		+= ep93xx_bl.o
-obj-$(CONFIG_BACKLIGHT_GENERIC)		+= generic_bl.o
 obj-$(CONFIG_BACKLIGHT_GPIO)		+= gpio_backlight.o
 obj-$(CONFIG_BACKLIGHT_HP680)		+= hp680_bl.o
 obj-$(CONFIG_BACKLIGHT_HP700)		+= jornada720_bl.o
diff --git a/drivers/video/backlight/generic_bl.c b/drivers/video/backlight/generic_bl.c
deleted file mode 100644
index 8fe63dbc8590..000000000000
--- a/drivers/video/backlight/generic_bl.c
+++ /dev/null
@@ -1,110 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  Generic Backlight Driver
- *
- *  Copyright (c) 2004-2008 Richard Purdie
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mutex.h>
-#include <linux/fb.h>
-#include <linux/backlight.h>
-
-static int genericbl_intensity;
-static struct backlight_device *generic_backlight_device;
-static struct generic_bl_info *bl_machinfo;
-
-static int genericbl_send_intensity(struct backlight_device *bd)
-{
-	int intensity = bd->props.brightness;
-
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_FBBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_SUSPENDED)
-		intensity = 0;
-
-	bl_machinfo->set_bl_intensity(intensity);
-
-	genericbl_intensity = intensity;
-
-	if (bl_machinfo->kick_battery)
-		bl_machinfo->kick_battery();
-
-	return 0;
-}
-
-static int genericbl_get_intensity(struct backlight_device *bd)
-{
-	return genericbl_intensity;
-}
-
-static const struct backlight_ops genericbl_ops = {
-	.options = BL_CORE_SUSPENDRESUME,
-	.get_brightness = genericbl_get_intensity,
-	.update_status  = genericbl_send_intensity,
-};
-
-static int genericbl_probe(struct platform_device *pdev)
-{
-	struct backlight_properties props;
-	struct generic_bl_info *machinfo = dev_get_platdata(&pdev->dev);
-	const char *name = "generic-bl";
-	struct backlight_device *bd;
-
-	bl_machinfo = machinfo;
-	if (!machinfo->limit_mask)
-		machinfo->limit_mask = -1;
-
-	if (machinfo->name)
-		name = machinfo->name;
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.type = BACKLIGHT_RAW;
-	props.max_brightness = machinfo->max_intensity;
-	bd = devm_backlight_device_register(&pdev->dev, name, &pdev->dev,
-					NULL, &genericbl_ops, &props);
-	if (IS_ERR(bd))
-		return PTR_ERR(bd);
-
-	platform_set_drvdata(pdev, bd);
-
-	bd->props.power = FB_BLANK_UNBLANK;
-	bd->props.brightness = machinfo->default_intensity;
-	backlight_update_status(bd);
-
-	generic_backlight_device = bd;
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Initialized.\n");
-	return 0;
-}
-
-static int genericbl_remove(struct platform_device *pdev)
-{
-	struct backlight_device *bd = platform_get_drvdata(pdev);
-
-	bd->props.power = 0;
-	bd->props.brightness = 0;
-	backlight_update_status(bd);
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Unloaded\n");
-	return 0;
-}
-
-static struct platform_driver genericbl_driver = {
-	.probe		= genericbl_probe,
-	.remove		= genericbl_remove,
-	.driver		= {
-		.name	= "generic-bl",
-	},
-};
-
-module_platform_driver(genericbl_driver);
-
-MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
-MODULE_DESCRIPTION("Generic Backlight Driver");
-MODULE_LICENSE("GPL");
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index bedc0c9885b6..35fdc277bdc5 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -468,15 +468,6 @@ static inline void * bl_get_data(struct backlight_device *bl_dev)
 	return dev_get_drvdata(&bl_dev->dev);
 }
 
-struct generic_bl_info {
-	const char *name;
-	int max_intensity;
-	int default_intensity;
-	int limit_mask;
-	void (*set_bl_intensity)(int intensity);
-	void (*kick_battery)(void);
-};
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1


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

* [PATCH v1 14/18] backlight: remove the unused backlight_bl driver
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

The driver required initialization using struct generic_bl_info.
As there are no more references to this struct there is no users left.
So it is safe to delete the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/Kconfig      |   8 --
 drivers/video/backlight/Makefile     |   1 -
 drivers/video/backlight/generic_bl.c | 110 ---------------------------
 include/linux/backlight.h            |   9 ---
 4 files changed, 128 deletions(-)
 delete mode 100644 drivers/video/backlight/generic_bl.c

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 7d22d7377606..14abfeee8868 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -173,14 +173,6 @@ config BACKLIGHT_EP93XX
 	  To compile this driver as a module, choose M here: the module will
 	  be called ep93xx_bl.
 
-config BACKLIGHT_GENERIC
-	tristate "Generic (aka Sharp Corgi) Backlight Driver"
-	default y
-	help
-	  Say y to enable the generic platform backlight driver previously
-	  known as the Corgi backlight driver. If you have a Sharp Zaurus
-	  SL-C7xx, SL-Cxx00 or SL-6000x say y.
-
 config BACKLIGHT_IPAQ_MICRO
 	tristate "iPAQ microcontroller backlight driver"
 	depends on MFD_IPAQ_MICRO
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index 0c1a1524627a..9b998cfdc56d 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -31,7 +31,6 @@ obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE)	+= backlight.o
 obj-$(CONFIG_BACKLIGHT_DA903X)		+= da903x_bl.o
 obj-$(CONFIG_BACKLIGHT_DA9052)		+= da9052_bl.o
 obj-$(CONFIG_BACKLIGHT_EP93XX)		+= ep93xx_bl.o
-obj-$(CONFIG_BACKLIGHT_GENERIC)		+= generic_bl.o
 obj-$(CONFIG_BACKLIGHT_GPIO)		+= gpio_backlight.o
 obj-$(CONFIG_BACKLIGHT_HP680)		+= hp680_bl.o
 obj-$(CONFIG_BACKLIGHT_HP700)		+= jornada720_bl.o
diff --git a/drivers/video/backlight/generic_bl.c b/drivers/video/backlight/generic_bl.c
deleted file mode 100644
index 8fe63dbc8590..000000000000
--- a/drivers/video/backlight/generic_bl.c
+++ /dev/null
@@ -1,110 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  Generic Backlight Driver
- *
- *  Copyright (c) 2004-2008 Richard Purdie
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mutex.h>
-#include <linux/fb.h>
-#include <linux/backlight.h>
-
-static int genericbl_intensity;
-static struct backlight_device *generic_backlight_device;
-static struct generic_bl_info *bl_machinfo;
-
-static int genericbl_send_intensity(struct backlight_device *bd)
-{
-	int intensity = bd->props.brightness;
-
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_FBBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_SUSPENDED)
-		intensity = 0;
-
-	bl_machinfo->set_bl_intensity(intensity);
-
-	genericbl_intensity = intensity;
-
-	if (bl_machinfo->kick_battery)
-		bl_machinfo->kick_battery();
-
-	return 0;
-}
-
-static int genericbl_get_intensity(struct backlight_device *bd)
-{
-	return genericbl_intensity;
-}
-
-static const struct backlight_ops genericbl_ops = {
-	.options = BL_CORE_SUSPENDRESUME,
-	.get_brightness = genericbl_get_intensity,
-	.update_status  = genericbl_send_intensity,
-};
-
-static int genericbl_probe(struct platform_device *pdev)
-{
-	struct backlight_properties props;
-	struct generic_bl_info *machinfo = dev_get_platdata(&pdev->dev);
-	const char *name = "generic-bl";
-	struct backlight_device *bd;
-
-	bl_machinfo = machinfo;
-	if (!machinfo->limit_mask)
-		machinfo->limit_mask = -1;
-
-	if (machinfo->name)
-		name = machinfo->name;
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.type = BACKLIGHT_RAW;
-	props.max_brightness = machinfo->max_intensity;
-	bd = devm_backlight_device_register(&pdev->dev, name, &pdev->dev,
-					NULL, &genericbl_ops, &props);
-	if (IS_ERR(bd))
-		return PTR_ERR(bd);
-
-	platform_set_drvdata(pdev, bd);
-
-	bd->props.power = FB_BLANK_UNBLANK;
-	bd->props.brightness = machinfo->default_intensity;
-	backlight_update_status(bd);
-
-	generic_backlight_device = bd;
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Initialized.\n");
-	return 0;
-}
-
-static int genericbl_remove(struct platform_device *pdev)
-{
-	struct backlight_device *bd = platform_get_drvdata(pdev);
-
-	bd->props.power = 0;
-	bd->props.brightness = 0;
-	backlight_update_status(bd);
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Unloaded\n");
-	return 0;
-}
-
-static struct platform_driver genericbl_driver = {
-	.probe		= genericbl_probe,
-	.remove		= genericbl_remove,
-	.driver		= {
-		.name	= "generic-bl",
-	},
-};
-
-module_platform_driver(genericbl_driver);
-
-MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
-MODULE_DESCRIPTION("Generic Backlight Driver");
-MODULE_LICENSE("GPL");
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index bedc0c9885b6..35fdc277bdc5 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -468,15 +468,6 @@ static inline void * bl_get_data(struct backlight_device *bl_dev)
 	return dev_get_drvdata(&bl_dev->dev);
 }
 
-struct generic_bl_info {
-	const char *name;
-	int max_intensity;
-	int default_intensity;
-	int limit_mask;
-	void (*set_bl_intensity)(int intensity);
-	void (*kick_battery)(void);
-};
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1

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

* [PATCH v1 14/18] backlight: remove the unused backlight_bl driver
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

The driver required initialization using struct generic_bl_info.
As there are no more references to this struct there is no users left.
So it is safe to delete the driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/Kconfig      |   8 --
 drivers/video/backlight/Makefile     |   1 -
 drivers/video/backlight/generic_bl.c | 110 ---------------------------
 include/linux/backlight.h            |   9 ---
 4 files changed, 128 deletions(-)
 delete mode 100644 drivers/video/backlight/generic_bl.c

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 7d22d7377606..14abfeee8868 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -173,14 +173,6 @@ config BACKLIGHT_EP93XX
 	  To compile this driver as a module, choose M here: the module will
 	  be called ep93xx_bl.
 
-config BACKLIGHT_GENERIC
-	tristate "Generic (aka Sharp Corgi) Backlight Driver"
-	default y
-	help
-	  Say y to enable the generic platform backlight driver previously
-	  known as the Corgi backlight driver. If you have a Sharp Zaurus
-	  SL-C7xx, SL-Cxx00 or SL-6000x say y.
-
 config BACKLIGHT_IPAQ_MICRO
 	tristate "iPAQ microcontroller backlight driver"
 	depends on MFD_IPAQ_MICRO
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index 0c1a1524627a..9b998cfdc56d 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -31,7 +31,6 @@ obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE)	+= backlight.o
 obj-$(CONFIG_BACKLIGHT_DA903X)		+= da903x_bl.o
 obj-$(CONFIG_BACKLIGHT_DA9052)		+= da9052_bl.o
 obj-$(CONFIG_BACKLIGHT_EP93XX)		+= ep93xx_bl.o
-obj-$(CONFIG_BACKLIGHT_GENERIC)		+= generic_bl.o
 obj-$(CONFIG_BACKLIGHT_GPIO)		+= gpio_backlight.o
 obj-$(CONFIG_BACKLIGHT_HP680)		+= hp680_bl.o
 obj-$(CONFIG_BACKLIGHT_HP700)		+= jornada720_bl.o
diff --git a/drivers/video/backlight/generic_bl.c b/drivers/video/backlight/generic_bl.c
deleted file mode 100644
index 8fe63dbc8590..000000000000
--- a/drivers/video/backlight/generic_bl.c
+++ /dev/null
@@ -1,110 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  Generic Backlight Driver
- *
- *  Copyright (c) 2004-2008 Richard Purdie
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mutex.h>
-#include <linux/fb.h>
-#include <linux/backlight.h>
-
-static int genericbl_intensity;
-static struct backlight_device *generic_backlight_device;
-static struct generic_bl_info *bl_machinfo;
-
-static int genericbl_send_intensity(struct backlight_device *bd)
-{
-	int intensity = bd->props.brightness;
-
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_FBBLANK)
-		intensity = 0;
-	if (bd->props.state & BL_CORE_SUSPENDED)
-		intensity = 0;
-
-	bl_machinfo->set_bl_intensity(intensity);
-
-	genericbl_intensity = intensity;
-
-	if (bl_machinfo->kick_battery)
-		bl_machinfo->kick_battery();
-
-	return 0;
-}
-
-static int genericbl_get_intensity(struct backlight_device *bd)
-{
-	return genericbl_intensity;
-}
-
-static const struct backlight_ops genericbl_ops = {
-	.options = BL_CORE_SUSPENDRESUME,
-	.get_brightness = genericbl_get_intensity,
-	.update_status  = genericbl_send_intensity,
-};
-
-static int genericbl_probe(struct platform_device *pdev)
-{
-	struct backlight_properties props;
-	struct generic_bl_info *machinfo = dev_get_platdata(&pdev->dev);
-	const char *name = "generic-bl";
-	struct backlight_device *bd;
-
-	bl_machinfo = machinfo;
-	if (!machinfo->limit_mask)
-		machinfo->limit_mask = -1;
-
-	if (machinfo->name)
-		name = machinfo->name;
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.type = BACKLIGHT_RAW;
-	props.max_brightness = machinfo->max_intensity;
-	bd = devm_backlight_device_register(&pdev->dev, name, &pdev->dev,
-					NULL, &genericbl_ops, &props);
-	if (IS_ERR(bd))
-		return PTR_ERR(bd);
-
-	platform_set_drvdata(pdev, bd);
-
-	bd->props.power = FB_BLANK_UNBLANK;
-	bd->props.brightness = machinfo->default_intensity;
-	backlight_update_status(bd);
-
-	generic_backlight_device = bd;
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Initialized.\n");
-	return 0;
-}
-
-static int genericbl_remove(struct platform_device *pdev)
-{
-	struct backlight_device *bd = platform_get_drvdata(pdev);
-
-	bd->props.power = 0;
-	bd->props.brightness = 0;
-	backlight_update_status(bd);
-
-	dev_info(&pdev->dev, "Generic Backlight Driver Unloaded\n");
-	return 0;
-}
-
-static struct platform_driver genericbl_driver = {
-	.probe		= genericbl_probe,
-	.remove		= genericbl_remove,
-	.driver		= {
-		.name	= "generic-bl",
-	},
-};
-
-module_platform_driver(genericbl_driver);
-
-MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
-MODULE_DESCRIPTION("Generic Backlight Driver");
-MODULE_LICENSE("GPL");
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index bedc0c9885b6..35fdc277bdc5 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -468,15 +468,6 @@ static inline void * bl_get_data(struct backlight_device *bl_dev)
 	return dev_get_drvdata(&bl_dev->dev);
 }
 
-struct generic_bl_info {
-	const char *name;
-	int max_intensity;
-	int default_intensity;
-	int limit_mask;
-	void (*set_bl_intensity)(int intensity);
-	void (*kick_battery)(void);
-};
-
 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 struct backlight_device *devm_of_find_backlight(struct device *dev);
 #else
-- 
2.25.1

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

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

* [PATCH v1 15/18] backlight: drop extern from prototypes
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

No need to put "extern" in front of prototypes.
While touching the prototypes adjust indent to follow
the kernel style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 35fdc277bdc5..99fc1c950578 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -432,22 +432,25 @@ static inline bool backlight_is_blank(struct backlight_device *bd)
 	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
 }
 
-extern struct backlight_device *backlight_device_register(const char *name,
-	struct device *dev, void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern struct backlight_device *devm_backlight_device_register(
-	struct device *dev, const char *name, struct device *parent,
-	void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern void backlight_device_unregister(struct backlight_device *bd);
-extern void devm_backlight_device_unregister(struct device *dev,
-					struct backlight_device *bd);
-extern void backlight_force_update(struct backlight_device *bd,
-				   enum backlight_update_reason reason);
-extern int backlight_register_notifier(struct notifier_block *nb);
-extern int backlight_unregister_notifier(struct notifier_block *nb);
-extern struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
-extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned long brightness);
+struct backlight_device *
+backlight_device_register(const char *name, struct device *dev, void *devdata,
+			  const struct backlight_ops *ops,
+			  const struct backlight_properties *props);
+struct backlight_device *
+devm_backlight_device_register(struct device *dev, const char *name,
+			       struct device *parent, void *devdata,
+			       const struct backlight_ops *ops,
+			       const struct backlight_properties *props);
+void backlight_device_unregister(struct backlight_device *bd);
+void devm_backlight_device_unregister(struct device *dev,
+				      struct backlight_device *bd);
+void backlight_force_update(struct backlight_device *bd,
+			    enum backlight_update_reason reason);
+int backlight_register_notifier(struct notifier_block *nb);
+int backlight_unregister_notifier(struct notifier_block *nb);
+struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
+int backlight_device_set_brightness(struct backlight_device *bd,
+				    unsigned long brightness);
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
-- 
2.25.1


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

* [PATCH v1 15/18] backlight: drop extern from prototypes
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

No need to put "extern" in front of prototypes.
While touching the prototypes adjust indent to follow
the kernel style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 35fdc277bdc5..99fc1c950578 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -432,22 +432,25 @@ static inline bool backlight_is_blank(struct backlight_device *bd)
 	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
 }
 
-extern struct backlight_device *backlight_device_register(const char *name,
-	struct device *dev, void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern struct backlight_device *devm_backlight_device_register(
-	struct device *dev, const char *name, struct device *parent,
-	void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern void backlight_device_unregister(struct backlight_device *bd);
-extern void devm_backlight_device_unregister(struct device *dev,
-					struct backlight_device *bd);
-extern void backlight_force_update(struct backlight_device *bd,
-				   enum backlight_update_reason reason);
-extern int backlight_register_notifier(struct notifier_block *nb);
-extern int backlight_unregister_notifier(struct notifier_block *nb);
-extern struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
-extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned long brightness);
+struct backlight_device *
+backlight_device_register(const char *name, struct device *dev, void *devdata,
+			  const struct backlight_ops *ops,
+			  const struct backlight_properties *props);
+struct backlight_device *
+devm_backlight_device_register(struct device *dev, const char *name,
+			       struct device *parent, void *devdata,
+			       const struct backlight_ops *ops,
+			       const struct backlight_properties *props);
+void backlight_device_unregister(struct backlight_device *bd);
+void devm_backlight_device_unregister(struct device *dev,
+				      struct backlight_device *bd);
+void backlight_force_update(struct backlight_device *bd,
+			    enum backlight_update_reason reason);
+int backlight_register_notifier(struct notifier_block *nb);
+int backlight_unregister_notifier(struct notifier_block *nb);
+struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
+int backlight_device_set_brightness(struct backlight_device *bd,
+				    unsigned long brightness);
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
-- 
2.25.1

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

* [PATCH v1 15/18] backlight: drop extern from prototypes
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

No need to put "extern" in front of prototypes.
While touching the prototypes adjust indent to follow
the kernel style.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 include/linux/backlight.h | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 35fdc277bdc5..99fc1c950578 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -432,22 +432,25 @@ static inline bool backlight_is_blank(struct backlight_device *bd)
 	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
 }
 
-extern struct backlight_device *backlight_device_register(const char *name,
-	struct device *dev, void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern struct backlight_device *devm_backlight_device_register(
-	struct device *dev, const char *name, struct device *parent,
-	void *devdata, const struct backlight_ops *ops,
-	const struct backlight_properties *props);
-extern void backlight_device_unregister(struct backlight_device *bd);
-extern void devm_backlight_device_unregister(struct device *dev,
-					struct backlight_device *bd);
-extern void backlight_force_update(struct backlight_device *bd,
-				   enum backlight_update_reason reason);
-extern int backlight_register_notifier(struct notifier_block *nb);
-extern int backlight_unregister_notifier(struct notifier_block *nb);
-extern struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
-extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned long brightness);
+struct backlight_device *
+backlight_device_register(const char *name, struct device *dev, void *devdata,
+			  const struct backlight_ops *ops,
+			  const struct backlight_properties *props);
+struct backlight_device *
+devm_backlight_device_register(struct device *dev, const char *name,
+			       struct device *parent, void *devdata,
+			       const struct backlight_ops *ops,
+			       const struct backlight_properties *props);
+void backlight_device_unregister(struct backlight_device *bd);
+void devm_backlight_device_unregister(struct device *dev,
+				      struct backlight_device *bd);
+void backlight_force_update(struct backlight_device *bd,
+			    enum backlight_update_reason reason);
+int backlight_register_notifier(struct notifier_block *nb);
+int backlight_unregister_notifier(struct notifier_block *nb);
+struct backlight_device *backlight_device_get_by_type(enum backlight_type type);
+int backlight_device_set_brightness(struct backlight_device *bd,
+				    unsigned long brightness);
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
 
-- 
2.25.1

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

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

* [PATCH v1 16/18] backlight: add overview and update existing doc
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:09   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Add overview chapter to backlight.c.
Update existing kernel-doc to follow a more consistent
style and drop kernel-doc for deprecated functions.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 134 +++++++++++++++++++---------
 1 file changed, 92 insertions(+), 42 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 5e08f4f1c99a..441d2880ffe2 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -22,6 +22,45 @@
 #include <asm/backlight.h>
 #endif
 
+/**
+ * DOC: overview
+ *
+ * The backlight core supports implementing backlight drivers.
+ *
+ * backlight is controlled from userspace via firmware, a platform
+ * specific way or via sysfs. The backlight core provide support
+ * for all three types of backlight control.
+ *
+ * A backlight driver registers a driver using
+ * devm_backlight_device_register(). The properties of the backlight
+ * driver such as type and max_brightness must be specified.
+ * When the core detect changes in for example brightness or power state
+ * the update_status() operation is called. The backlight driver shall
+ * implement this operation and use it to adjust backlight.
+ *
+ * Several sysfs attributes are provided by the backlight core::
+ *
+ * - brightness         R/W, set the requested brightness level
+ * - actual_brighness   RO, the brightness level used by the HW
+ * - max_brightness     RO, the maximum  brightness level supported
+ *
+ * See Documentation/ABI/stable/sysfs-class-backlight for the full list.
+ *
+ * The driver shall implement the get_brightness() operation if
+ * the HW do not support all the levels that can be specified in
+ * brightness, thus providing user-space access to the actual level
+ * via the actual_brightness attribute.
+ * When the backlight changes this is reported to user-space using
+ * an uevent connected to the actual_brightness attribute.
+ * When brightness is set by platform specific means, for example
+ * a hot-key to adjust backlight, the driver must notify the backlight
+ * core that brighness has changed using backlight_force_update().
+ *
+ * The backlight driver core receives notifications from fbdev and
+ * if the event is FB_EVENT_BLANK the value of blank, from the FBIOBLANK
+ * ioclt, is passed to the driver via the update_status() operation.
+ */
+
 static struct list_head backlight_dev_list;
 static struct mutex backlight_dev_list_mutex;
 static struct blocking_notifier_head backlight_notifier;
@@ -40,9 +79,17 @@ static const char *const backlight_scale_types[] = {
 
 #if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
 			   defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
-/* This callback gets called when something important happens inside a
- * framebuffer driver. We're looking if that important event is blanking,
- * and if it is and necessary, we're switching backlight power as well ...
+/*
+ * fb_notifier_callback
+ *
+ * This callback gets called when something important happens inside a
+ * framebuffer driver. The backlight core only care about FB_BLANK_UNBLANK
+ * which is reported to the driver using backlight_update_status()
+ * as a state change.
+ *
+ * There may be several fbdev's connected to the backlight device,
+ * in which case they are kept track of. A state change is only reported
+ * if there is a change in backligt for the specified fbdev.
  */
 static int fb_notifier_callback(struct notifier_block *self,
 				unsigned long event, void *data)
@@ -318,12 +365,16 @@ static struct attribute *bl_device_attrs[] = {
 ATTRIBUTE_GROUPS(bl_device);
 
 /**
- * backlight_force_update - tell the backlight subsystem that hardware state
- *   has changed
+ * backlight_force_update - force an update due to a hardware change
  * @bd: the backlight device to update
+ * @reason: the method used for the backlight update
  *
  * Updates the internal state of the backlight in response to a hardware event,
- * and generate a uevent to notify userspace
+ * and generate an uevent to notify userspace.
+ * A backlight driver shall call backlight_force_update() when the backlight
+ * is changed using, for example, a hot-key.
+ * The updated brightness is read using get_brightness() and the brightness
+ * value is reported using an uevent.
  */
 void backlight_force_update(struct backlight_device *bd,
 			    enum backlight_update_reason reason)
@@ -336,19 +387,7 @@ void backlight_force_update(struct backlight_device *bd,
 }
 EXPORT_SYMBOL(backlight_force_update);
 
-/**
- * backlight_device_register - create and register a new object of
- *   backlight_device class.
- * @name: the name of the new object(must be the same as the name of the
- *   respective framebuffer device).
- * @parent: a pointer to the parent device
- * @devdata: an optional pointer to be stored for private driver use. The
- *   methods may retrieve it by using bl_get_data(bd).
- * @ops: the backlight operations structure.
- *
- * Creates and registers new backlight device. Returns either an
- * ERR_PTR() or a pointer to the newly allocated device.
- */
+/* deprecated - use devm_backlight_device_register() */
 struct backlight_device *backlight_device_register(const char *name,
 	struct device *parent, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props)
@@ -415,6 +454,15 @@ struct backlight_device *backlight_device_register(const char *name,
 }
 EXPORT_SYMBOL(backlight_device_register);
 
+/** backlight_device_get_by_type - find first backlight device of a type
+ * @type: the type of backlight device
+ *
+ * Look up the first backlight device of the specified type
+ *
+ * RETURNS:
+ *
+ * Pointer to backlight device if any was found. Otherwise NULL.
+ */
 struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 {
 	bool found = false;
@@ -433,12 +481,7 @@ struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 }
 EXPORT_SYMBOL(backlight_device_get_by_type);
 
-/**
- * backlight_device_unregister - unregisters a backlight device object.
- * @bd: the backlight device object to be unregistered and freed.
- *
- * Unregisters a previously registered via backlight_device_register object.
- */
+/* deprecated - use devm_backlight_device_unregister() */
 void backlight_device_unregister(struct backlight_device *bd)
 {
 	if (!bd)
@@ -486,10 +529,12 @@ static int devm_backlight_device_match(struct device *dev, void *res,
  * backlight_register_notifier - get notified of backlight (un)registration
  * @nb: notifier block with the notifier to call on backlight (un)registration
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_register_notifier(struct notifier_block *nb)
 {
@@ -501,10 +546,12 @@ EXPORT_SYMBOL(backlight_register_notifier);
  * backlight_unregister_notifier - unregister a backlight notifier
  * @nb: notifier block to unregister
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_unregister_notifier(struct notifier_block *nb)
 {
@@ -513,20 +560,22 @@ int backlight_unregister_notifier(struct notifier_block *nb)
 EXPORT_SYMBOL(backlight_unregister_notifier);
 
 /**
- * devm_backlight_device_register - resource managed backlight_device_register()
+ * devm_backlight_device_register - registering a new backlight device
  * @dev: the device to register
  * @name: the name of the device
- * @parent: a pointer to the parent device
+ * @parent: a pointer to the parent device (often the same as @dev)
  * @devdata: an optional pointer to be stored for private driver use
  * @ops: the backlight operations structure
  * @props: the backlight properties
  *
- * @return a struct backlight on success, or an ERR_PTR on error
+ * Creates and registers new backlight device. When a backlight device
+ * is registered the configuration must be specified in the @props
+ * parameter. See description of &backlight_properties.
  *
- * Managed backlight_device_register(). The backlight_device returned
- * from this function are automatically freed on driver detach.
- * See backlight_device_register() for more information.
- */
+ * RETURNS:
+ *
+ * struct backlight on success, or an ERR_PTR on error
+*/
 struct backlight_device *devm_backlight_device_register(struct device *dev,
 	const char *name, struct device *parent, void *devdata,
 	const struct backlight_ops *ops,
@@ -553,13 +602,13 @@ struct backlight_device *devm_backlight_device_register(struct device *dev,
 EXPORT_SYMBOL(devm_backlight_device_register);
 
 /**
- * devm_backlight_device_unregister - resource managed backlight_device_unregister()
+ * devm_backlight_device_unregister - backlight device unregister
  * @dev: the device to unregister
  * @bd: the backlight device to unregister
  *
- * Deallocated a backlight allocated with devm_backlight_device_register().
+ * Deallocates a backlight allocated with devm_backlight_device_register().
  * Normally this function will not need to be called and the resource management
- * code will ensure that the resource is freed.
+ * code will ensure that the resources are freed.
  */
 void devm_backlight_device_unregister(struct device *dev,
 				struct backlight_device *bd)
@@ -633,15 +682,16 @@ static void devm_backlight_release(void *data)
 }
 
 /**
- * devm_of_find_backlight - Resource-managed of_find_backlight()
- * @dev: Device
+ * devm_of_find_backlight - find backlight for a device
+ * @dev: the device
  *
  * This function looks for a property named 'backlight' on the DT node
  * connected to @dev and looks up the backlight device.
  * The lookup is device managed so the reference to the backlight device
  * is automatically dropped on driver detach.
  *
- * Returns:
+ * RETURNS:
+ *
  * A pointer to the backlight device if found.
  * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
  * device is found.
-- 
2.25.1


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

* [PATCH v1 16/18] backlight: add overview and update existing doc
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Add overview chapter to backlight.c.
Update existing kernel-doc to follow a more consistent
style and drop kernel-doc for deprecated functions.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 134 +++++++++++++++++++---------
 1 file changed, 92 insertions(+), 42 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 5e08f4f1c99a..441d2880ffe2 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -22,6 +22,45 @@
 #include <asm/backlight.h>
 #endif
 
+/**
+ * DOC: overview
+ *
+ * The backlight core supports implementing backlight drivers.
+ *
+ * backlight is controlled from userspace via firmware, a platform
+ * specific way or via sysfs. The backlight core provide support
+ * for all three types of backlight control.
+ *
+ * A backlight driver registers a driver using
+ * devm_backlight_device_register(). The properties of the backlight
+ * driver such as type and max_brightness must be specified.
+ * When the core detect changes in for example brightness or power state
+ * the update_status() operation is called. The backlight driver shall
+ * implement this operation and use it to adjust backlight.
+ *
+ * Several sysfs attributes are provided by the backlight core::
+ *
+ * - brightness         R/W, set the requested brightness level
+ * - actual_brighness   RO, the brightness level used by the HW
+ * - max_brightness     RO, the maximum  brightness level supported
+ *
+ * See Documentation/ABI/stable/sysfs-class-backlight for the full list.
+ *
+ * The driver shall implement the get_brightness() operation if
+ * the HW do not support all the levels that can be specified in
+ * brightness, thus providing user-space access to the actual level
+ * via the actual_brightness attribute.
+ * When the backlight changes this is reported to user-space using
+ * an uevent connected to the actual_brightness attribute.
+ * When brightness is set by platform specific means, for example
+ * a hot-key to adjust backlight, the driver must notify the backlight
+ * core that brighness has changed using backlight_force_update().
+ *
+ * The backlight driver core receives notifications from fbdev and
+ * if the event is FB_EVENT_BLANK the value of blank, from the FBIOBLANK
+ * ioclt, is passed to the driver via the update_status() operation.
+ */
+
 static struct list_head backlight_dev_list;
 static struct mutex backlight_dev_list_mutex;
 static struct blocking_notifier_head backlight_notifier;
@@ -40,9 +79,17 @@ static const char *const backlight_scale_types[] = {
 
 #if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
 			   defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
-/* This callback gets called when something important happens inside a
- * framebuffer driver. We're looking if that important event is blanking,
- * and if it is and necessary, we're switching backlight power as well ...
+/*
+ * fb_notifier_callback
+ *
+ * This callback gets called when something important happens inside a
+ * framebuffer driver. The backlight core only care about FB_BLANK_UNBLANK
+ * which is reported to the driver using backlight_update_status()
+ * as a state change.
+ *
+ * There may be several fbdev's connected to the backlight device,
+ * in which case they are kept track of. A state change is only reported
+ * if there is a change in backligt for the specified fbdev.
  */
 static int fb_notifier_callback(struct notifier_block *self,
 				unsigned long event, void *data)
@@ -318,12 +365,16 @@ static struct attribute *bl_device_attrs[] = {
 ATTRIBUTE_GROUPS(bl_device);
 
 /**
- * backlight_force_update - tell the backlight subsystem that hardware state
- *   has changed
+ * backlight_force_update - force an update due to a hardware change
  * @bd: the backlight device to update
+ * @reason: the method used for the backlight update
  *
  * Updates the internal state of the backlight in response to a hardware event,
- * and generate a uevent to notify userspace
+ * and generate an uevent to notify userspace.
+ * A backlight driver shall call backlight_force_update() when the backlight
+ * is changed using, for example, a hot-key.
+ * The updated brightness is read using get_brightness() and the brightness
+ * value is reported using an uevent.
  */
 void backlight_force_update(struct backlight_device *bd,
 			    enum backlight_update_reason reason)
@@ -336,19 +387,7 @@ void backlight_force_update(struct backlight_device *bd,
 }
 EXPORT_SYMBOL(backlight_force_update);
 
-/**
- * backlight_device_register - create and register a new object of
- *   backlight_device class.
- * @name: the name of the new object(must be the same as the name of the
- *   respective framebuffer device).
- * @parent: a pointer to the parent device
- * @devdata: an optional pointer to be stored for private driver use. The
- *   methods may retrieve it by using bl_get_data(bd).
- * @ops: the backlight operations structure.
- *
- * Creates and registers new backlight device. Returns either an
- * ERR_PTR() or a pointer to the newly allocated device.
- */
+/* deprecated - use devm_backlight_device_register() */
 struct backlight_device *backlight_device_register(const char *name,
 	struct device *parent, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props)
@@ -415,6 +454,15 @@ struct backlight_device *backlight_device_register(const char *name,
 }
 EXPORT_SYMBOL(backlight_device_register);
 
+/** backlight_device_get_by_type - find first backlight device of a type
+ * @type: the type of backlight device
+ *
+ * Look up the first backlight device of the specified type
+ *
+ * RETURNS:
+ *
+ * Pointer to backlight device if any was found. Otherwise NULL.
+ */
 struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 {
 	bool found = false;
@@ -433,12 +481,7 @@ struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 }
 EXPORT_SYMBOL(backlight_device_get_by_type);
 
-/**
- * backlight_device_unregister - unregisters a backlight device object.
- * @bd: the backlight device object to be unregistered and freed.
- *
- * Unregisters a previously registered via backlight_device_register object.
- */
+/* deprecated - use devm_backlight_device_unregister() */
 void backlight_device_unregister(struct backlight_device *bd)
 {
 	if (!bd)
@@ -486,10 +529,12 @@ static int devm_backlight_device_match(struct device *dev, void *res,
  * backlight_register_notifier - get notified of backlight (un)registration
  * @nb: notifier block with the notifier to call on backlight (un)registration
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_register_notifier(struct notifier_block *nb)
 {
@@ -501,10 +546,12 @@ EXPORT_SYMBOL(backlight_register_notifier);
  * backlight_unregister_notifier - unregister a backlight notifier
  * @nb: notifier block to unregister
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_unregister_notifier(struct notifier_block *nb)
 {
@@ -513,20 +560,22 @@ int backlight_unregister_notifier(struct notifier_block *nb)
 EXPORT_SYMBOL(backlight_unregister_notifier);
 
 /**
- * devm_backlight_device_register - resource managed backlight_device_register()
+ * devm_backlight_device_register - registering a new backlight device
  * @dev: the device to register
  * @name: the name of the device
- * @parent: a pointer to the parent device
+ * @parent: a pointer to the parent device (often the same as @dev)
  * @devdata: an optional pointer to be stored for private driver use
  * @ops: the backlight operations structure
  * @props: the backlight properties
  *
- * @return a struct backlight on success, or an ERR_PTR on error
+ * Creates and registers new backlight device. When a backlight device
+ * is registered the configuration must be specified in the @props
+ * parameter. See description of &backlight_properties.
  *
- * Managed backlight_device_register(). The backlight_device returned
- * from this function are automatically freed on driver detach.
- * See backlight_device_register() for more information.
- */
+ * RETURNS:
+ *
+ * struct backlight on success, or an ERR_PTR on error
+*/
 struct backlight_device *devm_backlight_device_register(struct device *dev,
 	const char *name, struct device *parent, void *devdata,
 	const struct backlight_ops *ops,
@@ -553,13 +602,13 @@ struct backlight_device *devm_backlight_device_register(struct device *dev,
 EXPORT_SYMBOL(devm_backlight_device_register);
 
 /**
- * devm_backlight_device_unregister - resource managed backlight_device_unregister()
+ * devm_backlight_device_unregister - backlight device unregister
  * @dev: the device to unregister
  * @bd: the backlight device to unregister
  *
- * Deallocated a backlight allocated with devm_backlight_device_register().
+ * Deallocates a backlight allocated with devm_backlight_device_register().
  * Normally this function will not need to be called and the resource management
- * code will ensure that the resource is freed.
+ * code will ensure that the resources are freed.
  */
 void devm_backlight_device_unregister(struct device *dev,
 				struct backlight_device *bd)
@@ -633,15 +682,16 @@ static void devm_backlight_release(void *data)
 }
 
 /**
- * devm_of_find_backlight - Resource-managed of_find_backlight()
- * @dev: Device
+ * devm_of_find_backlight - find backlight for a device
+ * @dev: the device
  *
  * This function looks for a property named 'backlight' on the DT node
  * connected to @dev and looks up the backlight device.
  * The lookup is device managed so the reference to the backlight device
  * is automatically dropped on driver detach.
  *
- * Returns:
+ * RETURNS:
+ *
  * A pointer to the backlight device if found.
  * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
  * device is found.
-- 
2.25.1

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

* [PATCH v1 16/18] backlight: add overview and update existing doc
@ 2020-05-14 19:09   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:09 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Add overview chapter to backlight.c.
Update existing kernel-doc to follow a more consistent
style and drop kernel-doc for deprecated functions.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
---
 drivers/video/backlight/backlight.c | 134 +++++++++++++++++++---------
 1 file changed, 92 insertions(+), 42 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 5e08f4f1c99a..441d2880ffe2 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -22,6 +22,45 @@
 #include <asm/backlight.h>
 #endif
 
+/**
+ * DOC: overview
+ *
+ * The backlight core supports implementing backlight drivers.
+ *
+ * backlight is controlled from userspace via firmware, a platform
+ * specific way or via sysfs. The backlight core provide support
+ * for all three types of backlight control.
+ *
+ * A backlight driver registers a driver using
+ * devm_backlight_device_register(). The properties of the backlight
+ * driver such as type and max_brightness must be specified.
+ * When the core detect changes in for example brightness or power state
+ * the update_status() operation is called. The backlight driver shall
+ * implement this operation and use it to adjust backlight.
+ *
+ * Several sysfs attributes are provided by the backlight core::
+ *
+ * - brightness         R/W, set the requested brightness level
+ * - actual_brighness   RO, the brightness level used by the HW
+ * - max_brightness     RO, the maximum  brightness level supported
+ *
+ * See Documentation/ABI/stable/sysfs-class-backlight for the full list.
+ *
+ * The driver shall implement the get_brightness() operation if
+ * the HW do not support all the levels that can be specified in
+ * brightness, thus providing user-space access to the actual level
+ * via the actual_brightness attribute.
+ * When the backlight changes this is reported to user-space using
+ * an uevent connected to the actual_brightness attribute.
+ * When brightness is set by platform specific means, for example
+ * a hot-key to adjust backlight, the driver must notify the backlight
+ * core that brighness has changed using backlight_force_update().
+ *
+ * The backlight driver core receives notifications from fbdev and
+ * if the event is FB_EVENT_BLANK the value of blank, from the FBIOBLANK
+ * ioclt, is passed to the driver via the update_status() operation.
+ */
+
 static struct list_head backlight_dev_list;
 static struct mutex backlight_dev_list_mutex;
 static struct blocking_notifier_head backlight_notifier;
@@ -40,9 +79,17 @@ static const char *const backlight_scale_types[] = {
 
 #if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
 			   defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
-/* This callback gets called when something important happens inside a
- * framebuffer driver. We're looking if that important event is blanking,
- * and if it is and necessary, we're switching backlight power as well ...
+/*
+ * fb_notifier_callback
+ *
+ * This callback gets called when something important happens inside a
+ * framebuffer driver. The backlight core only care about FB_BLANK_UNBLANK
+ * which is reported to the driver using backlight_update_status()
+ * as a state change.
+ *
+ * There may be several fbdev's connected to the backlight device,
+ * in which case they are kept track of. A state change is only reported
+ * if there is a change in backligt for the specified fbdev.
  */
 static int fb_notifier_callback(struct notifier_block *self,
 				unsigned long event, void *data)
@@ -318,12 +365,16 @@ static struct attribute *bl_device_attrs[] = {
 ATTRIBUTE_GROUPS(bl_device);
 
 /**
- * backlight_force_update - tell the backlight subsystem that hardware state
- *   has changed
+ * backlight_force_update - force an update due to a hardware change
  * @bd: the backlight device to update
+ * @reason: the method used for the backlight update
  *
  * Updates the internal state of the backlight in response to a hardware event,
- * and generate a uevent to notify userspace
+ * and generate an uevent to notify userspace.
+ * A backlight driver shall call backlight_force_update() when the backlight
+ * is changed using, for example, a hot-key.
+ * The updated brightness is read using get_brightness() and the brightness
+ * value is reported using an uevent.
  */
 void backlight_force_update(struct backlight_device *bd,
 			    enum backlight_update_reason reason)
@@ -336,19 +387,7 @@ void backlight_force_update(struct backlight_device *bd,
 }
 EXPORT_SYMBOL(backlight_force_update);
 
-/**
- * backlight_device_register - create and register a new object of
- *   backlight_device class.
- * @name: the name of the new object(must be the same as the name of the
- *   respective framebuffer device).
- * @parent: a pointer to the parent device
- * @devdata: an optional pointer to be stored for private driver use. The
- *   methods may retrieve it by using bl_get_data(bd).
- * @ops: the backlight operations structure.
- *
- * Creates and registers new backlight device. Returns either an
- * ERR_PTR() or a pointer to the newly allocated device.
- */
+/* deprecated - use devm_backlight_device_register() */
 struct backlight_device *backlight_device_register(const char *name,
 	struct device *parent, void *devdata, const struct backlight_ops *ops,
 	const struct backlight_properties *props)
@@ -415,6 +454,15 @@ struct backlight_device *backlight_device_register(const char *name,
 }
 EXPORT_SYMBOL(backlight_device_register);
 
+/** backlight_device_get_by_type - find first backlight device of a type
+ * @type: the type of backlight device
+ *
+ * Look up the first backlight device of the specified type
+ *
+ * RETURNS:
+ *
+ * Pointer to backlight device if any was found. Otherwise NULL.
+ */
 struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 {
 	bool found = false;
@@ -433,12 +481,7 @@ struct backlight_device *backlight_device_get_by_type(enum backlight_type type)
 }
 EXPORT_SYMBOL(backlight_device_get_by_type);
 
-/**
- * backlight_device_unregister - unregisters a backlight device object.
- * @bd: the backlight device object to be unregistered and freed.
- *
- * Unregisters a previously registered via backlight_device_register object.
- */
+/* deprecated - use devm_backlight_device_unregister() */
 void backlight_device_unregister(struct backlight_device *bd)
 {
 	if (!bd)
@@ -486,10 +529,12 @@ static int devm_backlight_device_match(struct device *dev, void *res,
  * backlight_register_notifier - get notified of backlight (un)registration
  * @nb: notifier block with the notifier to call on backlight (un)registration
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_register_notifier(struct notifier_block *nb)
 {
@@ -501,10 +546,12 @@ EXPORT_SYMBOL(backlight_register_notifier);
  * backlight_unregister_notifier - unregister a backlight notifier
  * @nb: notifier block to unregister
  *
- * @return 0 on success, otherwise a negative error code
- *
  * Register a notifier to get notified when backlight devices get registered
  * or unregistered.
+ *
+ * RETURNS:
+ *
+ * 0 on success, otherwise a negative error code
  */
 int backlight_unregister_notifier(struct notifier_block *nb)
 {
@@ -513,20 +560,22 @@ int backlight_unregister_notifier(struct notifier_block *nb)
 EXPORT_SYMBOL(backlight_unregister_notifier);
 
 /**
- * devm_backlight_device_register - resource managed backlight_device_register()
+ * devm_backlight_device_register - registering a new backlight device
  * @dev: the device to register
  * @name: the name of the device
- * @parent: a pointer to the parent device
+ * @parent: a pointer to the parent device (often the same as @dev)
  * @devdata: an optional pointer to be stored for private driver use
  * @ops: the backlight operations structure
  * @props: the backlight properties
  *
- * @return a struct backlight on success, or an ERR_PTR on error
+ * Creates and registers new backlight device. When a backlight device
+ * is registered the configuration must be specified in the @props
+ * parameter. See description of &backlight_properties.
  *
- * Managed backlight_device_register(). The backlight_device returned
- * from this function are automatically freed on driver detach.
- * See backlight_device_register() for more information.
- */
+ * RETURNS:
+ *
+ * struct backlight on success, or an ERR_PTR on error
+*/
 struct backlight_device *devm_backlight_device_register(struct device *dev,
 	const char *name, struct device *parent, void *devdata,
 	const struct backlight_ops *ops,
@@ -553,13 +602,13 @@ struct backlight_device *devm_backlight_device_register(struct device *dev,
 EXPORT_SYMBOL(devm_backlight_device_register);
 
 /**
- * devm_backlight_device_unregister - resource managed backlight_device_unregister()
+ * devm_backlight_device_unregister - backlight device unregister
  * @dev: the device to unregister
  * @bd: the backlight device to unregister
  *
- * Deallocated a backlight allocated with devm_backlight_device_register().
+ * Deallocates a backlight allocated with devm_backlight_device_register().
  * Normally this function will not need to be called and the resource management
- * code will ensure that the resource is freed.
+ * code will ensure that the resources are freed.
  */
 void devm_backlight_device_unregister(struct device *dev,
 				struct backlight_device *bd)
@@ -633,15 +682,16 @@ static void devm_backlight_release(void *data)
 }
 
 /**
- * devm_of_find_backlight - Resource-managed of_find_backlight()
- * @dev: Device
+ * devm_of_find_backlight - find backlight for a device
+ * @dev: the device
  *
  * This function looks for a property named 'backlight' on the DT node
  * connected to @dev and looks up the backlight device.
  * The lookup is device managed so the reference to the backlight device
  * is automatically dropped on driver detach.
  *
- * Returns:
+ * RETURNS:
+ *
  * A pointer to the backlight device if found.
  * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight
  * device is found.
-- 
2.25.1

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

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

* [PATCH v1 17/18] backlight: wire up kernel-doc documentation
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:10   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin,
	Daniel Vetter

Include backlight so the documentation is now generated
with make htmldocs and friends.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 Documentation/gpu/backlight.rst | 12 ++++++++++++
 Documentation/gpu/index.rst     |  1 +
 2 files changed, 13 insertions(+)
 create mode 100644 Documentation/gpu/backlight.rst

diff --git a/Documentation/gpu/backlight.rst b/Documentation/gpu/backlight.rst
new file mode 100644
index 000000000000..9ebfc9d0aced
--- /dev/null
+++ b/Documentation/gpu/backlight.rst
@@ -0,0 +1,12 @@
+=================
+Backlight support
+=================
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :doc: overview
+
+.. kernel-doc:: include/linux/backlight.h
+   :internal:
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :export:
diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst
index 1fcf8e851e15..c9a51e3bfb5a 100644
--- a/Documentation/gpu/index.rst
+++ b/Documentation/gpu/index.rst
@@ -12,6 +12,7 @@ Linux GPU Driver Developer's Guide
    drm-uapi
    drm-client
    drivers
+   backlight
    vga-switcheroo
    vgaarbiter
    todo
-- 
2.25.1


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

* [PATCH v1 17/18] backlight: wire up kernel-doc documentation
@ 2020-05-14 19:10   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Include backlight so the documentation is now generated
with make htmldocs and friends.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 Documentation/gpu/backlight.rst | 12 ++++++++++++
 Documentation/gpu/index.rst     |  1 +
 2 files changed, 13 insertions(+)
 create mode 100644 Documentation/gpu/backlight.rst

diff --git a/Documentation/gpu/backlight.rst b/Documentation/gpu/backlight.rst
new file mode 100644
index 000000000000..9ebfc9d0aced
--- /dev/null
+++ b/Documentation/gpu/backlight.rst
@@ -0,0 +1,12 @@
+=================
+Backlight support
+=================
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :doc: overview
+
+.. kernel-doc:: include/linux/backlight.h
+   :internal:
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :export:
diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst
index 1fcf8e851e15..c9a51e3bfb5a 100644
--- a/Documentation/gpu/index.rst
+++ b/Documentation/gpu/index.rst
@@ -12,6 +12,7 @@ Linux GPU Driver Developer's Guide
    drm-uapi
    drm-client
    drivers
+   backlight
    vga-switcheroo
    vgaarbiter
    todo
-- 
2.25.1

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

* [PATCH v1 17/18] backlight: wire up kernel-doc documentation
@ 2020-05-14 19:10   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Include backlight so the documentation is now generated
with make htmldocs and friends.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 Documentation/gpu/backlight.rst | 12 ++++++++++++
 Documentation/gpu/index.rst     |  1 +
 2 files changed, 13 insertions(+)
 create mode 100644 Documentation/gpu/backlight.rst

diff --git a/Documentation/gpu/backlight.rst b/Documentation/gpu/backlight.rst
new file mode 100644
index 000000000000..9ebfc9d0aced
--- /dev/null
+++ b/Documentation/gpu/backlight.rst
@@ -0,0 +1,12 @@
+=================
+Backlight support
+=================
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :doc: overview
+
+.. kernel-doc:: include/linux/backlight.h
+   :internal:
+
+.. kernel-doc:: drivers/video/backlight/backlight.c
+   :export:
diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst
index 1fcf8e851e15..c9a51e3bfb5a 100644
--- a/Documentation/gpu/index.rst
+++ b/Documentation/gpu/index.rst
@@ -12,6 +12,7 @@ Linux GPU Driver Developer's Guide
    drm-uapi
    drm-client
    drivers
+   backlight
    vga-switcheroo
    vgaarbiter
    todo
-- 
2.25.1

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

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

* [PATCH v1 18/18] backlight: use backlight_is_blank() in all backlight drivers
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-14 19:10   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Sam Ravnborg,
	Support Opensource, Thierry Reding, Thomas Gleixner,
	Thomas Zimmermann, Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Replaces the open-coded checks if the state etc.,
with the backlight_is_blank() helper.
This increases readability of the code and aling
the functionality.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Michael Hennerich <michael.hennerich@analog.com>
Cc: Support Opensource <support.opensource@diasemi.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: linux-pwm@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Cc: patches@opensource.cirrus.com
---
 drivers/video/backlight/88pm860x_bl.c    |  8 +-------
 drivers/video/backlight/adp5520_bl.c     |  5 +----
 drivers/video/backlight/adp8860_bl.c     |  5 +----
 drivers/video/backlight/adp8870_bl.c     |  5 +----
 drivers/video/backlight/as3711_bl.c      |  8 +++-----
 drivers/video/backlight/bd6107.c         |  4 +---
 drivers/video/backlight/corgi_lcd.c      |  5 +----
 drivers/video/backlight/cr_bllcd.c       | 22 +++++++---------------
 drivers/video/backlight/da903x_bl.c      |  8 +-------
 drivers/video/backlight/ep93xx_bl.c      |  3 +--
 drivers/video/backlight/gpio_backlight.c |  4 +---
 drivers/video/backlight/hp680_bl.c       |  4 +---
 drivers/video/backlight/jornada720_bl.c  |  2 +-
 drivers/video/backlight/kb3886_bl.c      |  4 +---
 drivers/video/backlight/led_bl.c         |  4 +---
 drivers/video/backlight/lm3533_bl.c      |  4 +---
 drivers/video/backlight/locomolcd.c      |  4 +---
 drivers/video/backlight/lv5207lp.c       |  4 +---
 drivers/video/backlight/max8925_bl.c     |  8 +-------
 drivers/video/backlight/pwm_bl.c         |  4 +---
 drivers/video/backlight/qcom-wled.c      |  4 +---
 drivers/video/backlight/tps65217_bl.c    |  4 +---
 drivers/video/backlight/wm831x_bl.c      |  8 +-------
 23 files changed, 31 insertions(+), 100 deletions(-)

diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c
index 20d96a5ac384..162c83ab0f5a 100644
--- a/drivers/video/backlight/88pm860x_bl.c
+++ b/drivers/video/backlight/88pm860x_bl.c
@@ -123,13 +123,7 @@ static int pm860x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return pm860x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/adp5520_bl.c b/drivers/video/backlight/adp5520_bl.c
index 0f63f76723a5..d817b0d95c9d 100644
--- a/drivers/video/backlight/adp5520_bl.c
+++ b/drivers/video/backlight/adp5520_bl.c
@@ -67,10 +67,7 @@ static int adp5520_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp5520_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c
index 19968104fc47..a0ce2a3701fa 100644
--- a/drivers/video/backlight/adp8860_bl.c
+++ b/drivers/video/backlight/adp8860_bl.c
@@ -363,10 +363,7 @@ static int adp8860_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8860_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c
index 4c0032010cfe..ae4269fdb189 100644
--- a/drivers/video/backlight/adp8870_bl.c
+++ b/drivers/video/backlight/adp8870_bl.c
@@ -401,10 +401,7 @@ static int adp8870_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8870_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/as3711_bl.c b/drivers/video/backlight/as3711_bl.c
index 33f0f0f2e8b3..7fa76008c7bf 100644
--- a/drivers/video/backlight/as3711_bl.c
+++ b/drivers/video/backlight/as3711_bl.c
@@ -107,13 +107,11 @@ static int as3711_bl_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	int ret = 0;
 
-	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, blank %x, state %x\n",
+	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, state %x\n",
 		__func__, bl->props.brightness, bl->props.power,
-		bl->props.fb_blank, bl->props.state);
+		bl->props.state);
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (data->type == AS3711_BL_SU1) {
diff --git a/drivers/video/backlight/bd6107.c b/drivers/video/backlight/bd6107.c
index d5d5fb457e78..f6a5c1dba3bc 100644
--- a/drivers/video/backlight/bd6107.c
+++ b/drivers/video/backlight/bd6107.c
@@ -84,9 +84,7 @@ static int bd6107_backlight_update_status(struct backlight_device *backlight)
 	struct bd6107 *bd = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
index 25ef0cbd7583..c9adf4e26355 100644
--- a/drivers/video/backlight/corgi_lcd.c
+++ b/drivers/video/backlight/corgi_lcd.c
@@ -422,10 +422,7 @@ static int corgi_bl_update_status(struct backlight_device *bd)
 	struct corgi_lcd *lcd = bl_get_data(bd);
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 
 	if (corgibl_flags & CORGIBL_SUSPENDED)
diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c
index 4624b7b7c6a6..d5ab7675f55c 100644
--- a/drivers/video/backlight/cr_bllcd.c
+++ b/drivers/video/backlight/cr_bllcd.c
@@ -59,26 +59,18 @@ struct cr_panel {
 
 static int cr_backlight_set_intensity(struct backlight_device *bd)
 {
-	int intensity = bd->props.brightness;
 	u32 addr = gpio_bar + CRVML_PANEL_PORT;
 	u32 cur = inl(addr);
 
-	if (bd->props.power == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.fb_blank == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.power == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-	if (bd->props.fb_blank == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-
-	if (intensity == FB_BLANK_UNBLANK) { /* FULL ON */
-		cur &= ~CRVML_BACKLIGHT_OFF;
-		outl(cur, addr);
-	} else if (intensity == FB_BLANK_POWERDOWN) { /* OFF */
+	if (backlight_is_blank(bd)) {
+		/* OFF */
 		cur |= CRVML_BACKLIGHT_OFF;
 		outl(cur, addr);
-	} /* anything else, don't bother */
+	} else {
+		/* FULL ON */
+		cur &= ~CRVML_BACKLIGHT_OFF;
+		outl(cur, addr);
+	}
 
 	return 0;
 }
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 62540e4bdedb..ca351badfdcf 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -79,13 +79,7 @@ static int da903x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return da903x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/ep93xx_bl.c b/drivers/video/backlight/ep93xx_bl.c
index 4149e0b2f83c..491185df1411 100644
--- a/drivers/video/backlight/ep93xx_bl.c
+++ b/drivers/video/backlight/ep93xx_bl.c
@@ -38,8 +38,7 @@ static int ep93xxbl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return ep93xxbl_set(bl, brightness);
diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
index 75409ddfba3e..94b65e4d2aa0 100644
--- a/drivers/video/backlight/gpio_backlight.c
+++ b/drivers/video/backlight/gpio_backlight.c
@@ -25,9 +25,7 @@ static int gpio_backlight_get_next_brightness(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return brightness;
diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c
index 8ea42b8d9bc8..01d805ca8415 100644
--- a/drivers/video/backlight/hp680_bl.c
+++ b/drivers/video/backlight/hp680_bl.c
@@ -35,9 +35,7 @@ static void hp680bl_send_intensity(struct backlight_device *bd)
 	u16 v;
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (hp680bl_suspended)
 		intensity = 0;
diff --git a/drivers/video/backlight/jornada720_bl.c b/drivers/video/backlight/jornada720_bl.c
index f0385f9cf9da..996f7ba3b373 100644
--- a/drivers/video/backlight/jornada720_bl.c
+++ b/drivers/video/backlight/jornada720_bl.c
@@ -54,7 +54,7 @@ static int jornada_bl_update_status(struct backlight_device *bd)
 	jornada_ssp_start();
 
 	/* If backlight is off then really turn it off */
-	if ((bd->props.power != FB_BLANK_UNBLANK) || (bd->props.fb_blank != FB_BLANK_UNBLANK)) {
+	if (backlight_is_blank(bd)) {
 		ret = jornada_ssp_byte(BRIGHTNESSOFF);
 		if (ret != TXDUMMY) {
 			dev_info(&bd->dev, "brightness off timeout\n");
diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
index 1dfe13c18925..a0fd5d3d82f5 100644
--- a/drivers/video/backlight/kb3886_bl.c
+++ b/drivers/video/backlight/kb3886_bl.c
@@ -89,9 +89,7 @@ static int kb3886bl_send_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (kb3886bl_flags & KB3886BL_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c
index 3f66549997c8..c655ddd99cfb 100644
--- a/drivers/video/backlight/led_bl.c
+++ b/drivers/video/backlight/led_bl.c
@@ -56,9 +56,7 @@ static int led_bl_update_status(struct backlight_device *bl)
 	struct led_bl_data *priv = bl_get_data(bl);
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0)
diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c
index ee09d1bd02b9..476146b62c4e 100644
--- a/drivers/video/backlight/lm3533_bl.c
+++ b/drivers/video/backlight/lm3533_bl.c
@@ -41,9 +41,7 @@ static int lm3533_bl_update_status(struct backlight_device *bd)
 	struct lm3533_bl *bl = bl_get_data(bd);
 	int brightness = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		brightness = 0;
 
 	return lm3533_ctrlbank_set_brightness(&bl->cb, (u8)brightness);
diff --git a/drivers/video/backlight/locomolcd.c b/drivers/video/backlight/locomolcd.c
index cdc02e04f89d..8064cad8d683 100644
--- a/drivers/video/backlight/locomolcd.c
+++ b/drivers/video/backlight/locomolcd.c
@@ -113,9 +113,7 @@ static int locomolcd_set_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (locomolcd_flags & LOCOMOLCD_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/lv5207lp.c b/drivers/video/backlight/lv5207lp.c
index c6ad73a784e2..ef8aa9803577 100644
--- a/drivers/video/backlight/lv5207lp.c
+++ b/drivers/video/backlight/lv5207lp.c
@@ -48,9 +48,7 @@ static int lv5207lp_backlight_update_status(struct backlight_device *backlight)
 	struct lv5207lp *lv = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c
index 97cc260ff9d1..b8af2c6407d3 100644
--- a/drivers/video/backlight/max8925_bl.c
+++ b/drivers/video/backlight/max8925_bl.c
@@ -66,13 +66,7 @@ static int max8925_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return max8925_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index 82b8d7594701..7d0ffcd37f07 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -111,9 +111,7 @@ static int pwm_backlight_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	struct pwm_state state;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (pb->notify)
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index 3d276b30a78c..9600f5d58ece 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -261,9 +261,7 @@ static int wled_update_status(struct backlight_device *bl)
 	u16 brightness = bl->props.brightness;
 	int rc = 0;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	mutex_lock(&wled->lock);
diff --git a/drivers/video/backlight/tps65217_bl.c b/drivers/video/backlight/tps65217_bl.c
index 762e3feed097..1041e5e62ee3 100644
--- a/drivers/video/backlight/tps65217_bl.c
+++ b/drivers/video/backlight/tps65217_bl.c
@@ -82,9 +82,7 @@ static int tps65217_bl_update_status(struct backlight_device *bl)
 	if (bl->props.state & BL_CORE_SUSPENDED)
 		brightness = 0;
 
-	if ((bl->props.power != FB_BLANK_UNBLANK) ||
-		(bl->props.fb_blank != FB_BLANK_UNBLANK))
-		/* framebuffer in low power mode or blanking active */
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0) {
diff --git a/drivers/video/backlight/wm831x_bl.c b/drivers/video/backlight/wm831x_bl.c
index e55977d54c15..dc2ab6c8b7f9 100644
--- a/drivers/video/backlight/wm831x_bl.c
+++ b/drivers/video/backlight/wm831x_bl.c
@@ -93,13 +93,7 @@ static int wm831x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return wm831x_backlight_set(bl, brightness);
-- 
2.25.1


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

* [PATCH v1 18/18] backlight: use backlight_is_blank() in all backlight drivers
@ 2020-05-14 19:10   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Replaces the open-coded checks if the state etc.,
with the backlight_is_blank() helper.
This increases readability of the code and aling
the functionality.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Michael Hennerich <michael.hennerich@analog.com>
Cc: Support Opensource <support.opensource@diasemi.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: linux-pwm@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Cc: patches@opensource.cirrus.com
---
 drivers/video/backlight/88pm860x_bl.c    |  8 +-------
 drivers/video/backlight/adp5520_bl.c     |  5 +----
 drivers/video/backlight/adp8860_bl.c     |  5 +----
 drivers/video/backlight/adp8870_bl.c     |  5 +----
 drivers/video/backlight/as3711_bl.c      |  8 +++-----
 drivers/video/backlight/bd6107.c         |  4 +---
 drivers/video/backlight/corgi_lcd.c      |  5 +----
 drivers/video/backlight/cr_bllcd.c       | 22 +++++++---------------
 drivers/video/backlight/da903x_bl.c      |  8 +-------
 drivers/video/backlight/ep93xx_bl.c      |  3 +--
 drivers/video/backlight/gpio_backlight.c |  4 +---
 drivers/video/backlight/hp680_bl.c       |  4 +---
 drivers/video/backlight/jornada720_bl.c  |  2 +-
 drivers/video/backlight/kb3886_bl.c      |  4 +---
 drivers/video/backlight/led_bl.c         |  4 +---
 drivers/video/backlight/lm3533_bl.c      |  4 +---
 drivers/video/backlight/locomolcd.c      |  4 +---
 drivers/video/backlight/lv5207lp.c       |  4 +---
 drivers/video/backlight/max8925_bl.c     |  8 +-------
 drivers/video/backlight/pwm_bl.c         |  4 +---
 drivers/video/backlight/qcom-wled.c      |  4 +---
 drivers/video/backlight/tps65217_bl.c    |  4 +---
 drivers/video/backlight/wm831x_bl.c      |  8 +-------
 23 files changed, 31 insertions(+), 100 deletions(-)

diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c
index 20d96a5ac384..162c83ab0f5a 100644
--- a/drivers/video/backlight/88pm860x_bl.c
+++ b/drivers/video/backlight/88pm860x_bl.c
@@ -123,13 +123,7 @@ static int pm860x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return pm860x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/adp5520_bl.c b/drivers/video/backlight/adp5520_bl.c
index 0f63f76723a5..d817b0d95c9d 100644
--- a/drivers/video/backlight/adp5520_bl.c
+++ b/drivers/video/backlight/adp5520_bl.c
@@ -67,10 +67,7 @@ static int adp5520_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp5520_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c
index 19968104fc47..a0ce2a3701fa 100644
--- a/drivers/video/backlight/adp8860_bl.c
+++ b/drivers/video/backlight/adp8860_bl.c
@@ -363,10 +363,7 @@ static int adp8860_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8860_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c
index 4c0032010cfe..ae4269fdb189 100644
--- a/drivers/video/backlight/adp8870_bl.c
+++ b/drivers/video/backlight/adp8870_bl.c
@@ -401,10 +401,7 @@ static int adp8870_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8870_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/as3711_bl.c b/drivers/video/backlight/as3711_bl.c
index 33f0f0f2e8b3..7fa76008c7bf 100644
--- a/drivers/video/backlight/as3711_bl.c
+++ b/drivers/video/backlight/as3711_bl.c
@@ -107,13 +107,11 @@ static int as3711_bl_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	int ret = 0;
 
-	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, blank %x, state %x\n",
+	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, state %x\n",
 		__func__, bl->props.brightness, bl->props.power,
-		bl->props.fb_blank, bl->props.state);
+		bl->props.state);
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (data->type == AS3711_BL_SU1) {
diff --git a/drivers/video/backlight/bd6107.c b/drivers/video/backlight/bd6107.c
index d5d5fb457e78..f6a5c1dba3bc 100644
--- a/drivers/video/backlight/bd6107.c
+++ b/drivers/video/backlight/bd6107.c
@@ -84,9 +84,7 @@ static int bd6107_backlight_update_status(struct backlight_device *backlight)
 	struct bd6107 *bd = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
index 25ef0cbd7583..c9adf4e26355 100644
--- a/drivers/video/backlight/corgi_lcd.c
+++ b/drivers/video/backlight/corgi_lcd.c
@@ -422,10 +422,7 @@ static int corgi_bl_update_status(struct backlight_device *bd)
 	struct corgi_lcd *lcd = bl_get_data(bd);
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 
 	if (corgibl_flags & CORGIBL_SUSPENDED)
diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c
index 4624b7b7c6a6..d5ab7675f55c 100644
--- a/drivers/video/backlight/cr_bllcd.c
+++ b/drivers/video/backlight/cr_bllcd.c
@@ -59,26 +59,18 @@ struct cr_panel {
 
 static int cr_backlight_set_intensity(struct backlight_device *bd)
 {
-	int intensity = bd->props.brightness;
 	u32 addr = gpio_bar + CRVML_PANEL_PORT;
 	u32 cur = inl(addr);
 
-	if (bd->props.power == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.fb_blank == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.power == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-	if (bd->props.fb_blank == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-
-	if (intensity == FB_BLANK_UNBLANK) { /* FULL ON */
-		cur &= ~CRVML_BACKLIGHT_OFF;
-		outl(cur, addr);
-	} else if (intensity == FB_BLANK_POWERDOWN) { /* OFF */
+	if (backlight_is_blank(bd)) {
+		/* OFF */
 		cur |= CRVML_BACKLIGHT_OFF;
 		outl(cur, addr);
-	} /* anything else, don't bother */
+	} else {
+		/* FULL ON */
+		cur &= ~CRVML_BACKLIGHT_OFF;
+		outl(cur, addr);
+	}
 
 	return 0;
 }
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 62540e4bdedb..ca351badfdcf 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -79,13 +79,7 @@ static int da903x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return da903x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/ep93xx_bl.c b/drivers/video/backlight/ep93xx_bl.c
index 4149e0b2f83c..491185df1411 100644
--- a/drivers/video/backlight/ep93xx_bl.c
+++ b/drivers/video/backlight/ep93xx_bl.c
@@ -38,8 +38,7 @@ static int ep93xxbl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return ep93xxbl_set(bl, brightness);
diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
index 75409ddfba3e..94b65e4d2aa0 100644
--- a/drivers/video/backlight/gpio_backlight.c
+++ b/drivers/video/backlight/gpio_backlight.c
@@ -25,9 +25,7 @@ static int gpio_backlight_get_next_brightness(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return brightness;
diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c
index 8ea42b8d9bc8..01d805ca8415 100644
--- a/drivers/video/backlight/hp680_bl.c
+++ b/drivers/video/backlight/hp680_bl.c
@@ -35,9 +35,7 @@ static void hp680bl_send_intensity(struct backlight_device *bd)
 	u16 v;
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (hp680bl_suspended)
 		intensity = 0;
diff --git a/drivers/video/backlight/jornada720_bl.c b/drivers/video/backlight/jornada720_bl.c
index f0385f9cf9da..996f7ba3b373 100644
--- a/drivers/video/backlight/jornada720_bl.c
+++ b/drivers/video/backlight/jornada720_bl.c
@@ -54,7 +54,7 @@ static int jornada_bl_update_status(struct backlight_device *bd)
 	jornada_ssp_start();
 
 	/* If backlight is off then really turn it off */
-	if ((bd->props.power != FB_BLANK_UNBLANK) || (bd->props.fb_blank != FB_BLANK_UNBLANK)) {
+	if (backlight_is_blank(bd)) {
 		ret = jornada_ssp_byte(BRIGHTNESSOFF);
 		if (ret != TXDUMMY) {
 			dev_info(&bd->dev, "brightness off timeout\n");
diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
index 1dfe13c18925..a0fd5d3d82f5 100644
--- a/drivers/video/backlight/kb3886_bl.c
+++ b/drivers/video/backlight/kb3886_bl.c
@@ -89,9 +89,7 @@ static int kb3886bl_send_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (kb3886bl_flags & KB3886BL_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c
index 3f66549997c8..c655ddd99cfb 100644
--- a/drivers/video/backlight/led_bl.c
+++ b/drivers/video/backlight/led_bl.c
@@ -56,9 +56,7 @@ static int led_bl_update_status(struct backlight_device *bl)
 	struct led_bl_data *priv = bl_get_data(bl);
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0)
diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c
index ee09d1bd02b9..476146b62c4e 100644
--- a/drivers/video/backlight/lm3533_bl.c
+++ b/drivers/video/backlight/lm3533_bl.c
@@ -41,9 +41,7 @@ static int lm3533_bl_update_status(struct backlight_device *bd)
 	struct lm3533_bl *bl = bl_get_data(bd);
 	int brightness = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		brightness = 0;
 
 	return lm3533_ctrlbank_set_brightness(&bl->cb, (u8)brightness);
diff --git a/drivers/video/backlight/locomolcd.c b/drivers/video/backlight/locomolcd.c
index cdc02e04f89d..8064cad8d683 100644
--- a/drivers/video/backlight/locomolcd.c
+++ b/drivers/video/backlight/locomolcd.c
@@ -113,9 +113,7 @@ static int locomolcd_set_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (locomolcd_flags & LOCOMOLCD_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/lv5207lp.c b/drivers/video/backlight/lv5207lp.c
index c6ad73a784e2..ef8aa9803577 100644
--- a/drivers/video/backlight/lv5207lp.c
+++ b/drivers/video/backlight/lv5207lp.c
@@ -48,9 +48,7 @@ static int lv5207lp_backlight_update_status(struct backlight_device *backlight)
 	struct lv5207lp *lv = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c
index 97cc260ff9d1..b8af2c6407d3 100644
--- a/drivers/video/backlight/max8925_bl.c
+++ b/drivers/video/backlight/max8925_bl.c
@@ -66,13 +66,7 @@ static int max8925_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return max8925_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index 82b8d7594701..7d0ffcd37f07 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -111,9 +111,7 @@ static int pwm_backlight_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	struct pwm_state state;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (pb->notify)
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index 3d276b30a78c..9600f5d58ece 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -261,9 +261,7 @@ static int wled_update_status(struct backlight_device *bl)
 	u16 brightness = bl->props.brightness;
 	int rc = 0;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	mutex_lock(&wled->lock);
diff --git a/drivers/video/backlight/tps65217_bl.c b/drivers/video/backlight/tps65217_bl.c
index 762e3feed097..1041e5e62ee3 100644
--- a/drivers/video/backlight/tps65217_bl.c
+++ b/drivers/video/backlight/tps65217_bl.c
@@ -82,9 +82,7 @@ static int tps65217_bl_update_status(struct backlight_device *bl)
 	if (bl->props.state & BL_CORE_SUSPENDED)
 		brightness = 0;
 
-	if ((bl->props.power != FB_BLANK_UNBLANK) ||
-		(bl->props.fb_blank != FB_BLANK_UNBLANK))
-		/* framebuffer in low power mode or blanking active */
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0) {
diff --git a/drivers/video/backlight/wm831x_bl.c b/drivers/video/backlight/wm831x_bl.c
index e55977d54c15..dc2ab6c8b7f9 100644
--- a/drivers/video/backlight/wm831x_bl.c
+++ b/drivers/video/backlight/wm831x_bl.c
@@ -93,13 +93,7 @@ static int wm831x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return wm831x_backlight_set(bl, brightness);
-- 
2.25.1

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

* [PATCH v1 18/18] backlight: use backlight_is_blank() in all backlight drivers
@ 2020-05-14 19:10   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:10 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart, Sam Ravnborg,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Replaces the open-coded checks if the state etc.,
with the backlight_is_blank() helper.
This increases readability of the code and aling
the functionality.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Michael Hennerich <michael.hennerich@analog.com>
Cc: Support Opensource <support.opensource@diasemi.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: linux-pwm@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Cc: patches@opensource.cirrus.com
---
 drivers/video/backlight/88pm860x_bl.c    |  8 +-------
 drivers/video/backlight/adp5520_bl.c     |  5 +----
 drivers/video/backlight/adp8860_bl.c     |  5 +----
 drivers/video/backlight/adp8870_bl.c     |  5 +----
 drivers/video/backlight/as3711_bl.c      |  8 +++-----
 drivers/video/backlight/bd6107.c         |  4 +---
 drivers/video/backlight/corgi_lcd.c      |  5 +----
 drivers/video/backlight/cr_bllcd.c       | 22 +++++++---------------
 drivers/video/backlight/da903x_bl.c      |  8 +-------
 drivers/video/backlight/ep93xx_bl.c      |  3 +--
 drivers/video/backlight/gpio_backlight.c |  4 +---
 drivers/video/backlight/hp680_bl.c       |  4 +---
 drivers/video/backlight/jornada720_bl.c  |  2 +-
 drivers/video/backlight/kb3886_bl.c      |  4 +---
 drivers/video/backlight/led_bl.c         |  4 +---
 drivers/video/backlight/lm3533_bl.c      |  4 +---
 drivers/video/backlight/locomolcd.c      |  4 +---
 drivers/video/backlight/lv5207lp.c       |  4 +---
 drivers/video/backlight/max8925_bl.c     |  8 +-------
 drivers/video/backlight/pwm_bl.c         |  4 +---
 drivers/video/backlight/qcom-wled.c      |  4 +---
 drivers/video/backlight/tps65217_bl.c    |  4 +---
 drivers/video/backlight/wm831x_bl.c      |  8 +-------
 23 files changed, 31 insertions(+), 100 deletions(-)

diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c
index 20d96a5ac384..162c83ab0f5a 100644
--- a/drivers/video/backlight/88pm860x_bl.c
+++ b/drivers/video/backlight/88pm860x_bl.c
@@ -123,13 +123,7 @@ static int pm860x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return pm860x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/adp5520_bl.c b/drivers/video/backlight/adp5520_bl.c
index 0f63f76723a5..d817b0d95c9d 100644
--- a/drivers/video/backlight/adp5520_bl.c
+++ b/drivers/video/backlight/adp5520_bl.c
@@ -67,10 +67,7 @@ static int adp5520_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp5520_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c
index 19968104fc47..a0ce2a3701fa 100644
--- a/drivers/video/backlight/adp8860_bl.c
+++ b/drivers/video/backlight/adp8860_bl.c
@@ -363,10 +363,7 @@ static int adp8860_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8860_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c
index 4c0032010cfe..ae4269fdb189 100644
--- a/drivers/video/backlight/adp8870_bl.c
+++ b/drivers/video/backlight/adp8870_bl.c
@@ -401,10 +401,7 @@ static int adp8870_bl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return adp8870_bl_set(bl, brightness);
diff --git a/drivers/video/backlight/as3711_bl.c b/drivers/video/backlight/as3711_bl.c
index 33f0f0f2e8b3..7fa76008c7bf 100644
--- a/drivers/video/backlight/as3711_bl.c
+++ b/drivers/video/backlight/as3711_bl.c
@@ -107,13 +107,11 @@ static int as3711_bl_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	int ret = 0;
 
-	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, blank %x, state %x\n",
+	dev_dbg(&bl->dev, "%s(): brightness %u, pwr %x, state %x\n",
 		__func__, bl->props.brightness, bl->props.power,
-		bl->props.fb_blank, bl->props.state);
+		bl->props.state);
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (data->type == AS3711_BL_SU1) {
diff --git a/drivers/video/backlight/bd6107.c b/drivers/video/backlight/bd6107.c
index d5d5fb457e78..f6a5c1dba3bc 100644
--- a/drivers/video/backlight/bd6107.c
+++ b/drivers/video/backlight/bd6107.c
@@ -84,9 +84,7 @@ static int bd6107_backlight_update_status(struct backlight_device *backlight)
 	struct bd6107 *bd = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
index 25ef0cbd7583..c9adf4e26355 100644
--- a/drivers/video/backlight/corgi_lcd.c
+++ b/drivers/video/backlight/corgi_lcd.c
@@ -422,10 +422,7 @@ static int corgi_bl_update_status(struct backlight_device *bd)
 	struct corgi_lcd *lcd = bl_get_data(bd);
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 
 	if (corgibl_flags & CORGIBL_SUSPENDED)
diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c
index 4624b7b7c6a6..d5ab7675f55c 100644
--- a/drivers/video/backlight/cr_bllcd.c
+++ b/drivers/video/backlight/cr_bllcd.c
@@ -59,26 +59,18 @@ struct cr_panel {
 
 static int cr_backlight_set_intensity(struct backlight_device *bd)
 {
-	int intensity = bd->props.brightness;
 	u32 addr = gpio_bar + CRVML_PANEL_PORT;
 	u32 cur = inl(addr);
 
-	if (bd->props.power == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.fb_blank == FB_BLANK_UNBLANK)
-		intensity = FB_BLANK_UNBLANK;
-	if (bd->props.power == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-	if (bd->props.fb_blank == FB_BLANK_POWERDOWN)
-		intensity = FB_BLANK_POWERDOWN;
-
-	if (intensity == FB_BLANK_UNBLANK) { /* FULL ON */
-		cur &= ~CRVML_BACKLIGHT_OFF;
-		outl(cur, addr);
-	} else if (intensity == FB_BLANK_POWERDOWN) { /* OFF */
+	if (backlight_is_blank(bd)) {
+		/* OFF */
 		cur |= CRVML_BACKLIGHT_OFF;
 		outl(cur, addr);
-	} /* anything else, don't bother */
+	} else {
+		/* FULL ON */
+		cur &= ~CRVML_BACKLIGHT_OFF;
+		outl(cur, addr);
+	}
 
 	return 0;
 }
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 62540e4bdedb..ca351badfdcf 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -79,13 +79,7 @@ static int da903x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return da903x_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/ep93xx_bl.c b/drivers/video/backlight/ep93xx_bl.c
index 4149e0b2f83c..491185df1411 100644
--- a/drivers/video/backlight/ep93xx_bl.c
+++ b/drivers/video/backlight/ep93xx_bl.c
@@ -38,8 +38,7 @@ static int ep93xxbl_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return ep93xxbl_set(bl, brightness);
diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
index 75409ddfba3e..94b65e4d2aa0 100644
--- a/drivers/video/backlight/gpio_backlight.c
+++ b/drivers/video/backlight/gpio_backlight.c
@@ -25,9 +25,7 @@ static int gpio_backlight_get_next_brightness(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return brightness;
diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c
index 8ea42b8d9bc8..01d805ca8415 100644
--- a/drivers/video/backlight/hp680_bl.c
+++ b/drivers/video/backlight/hp680_bl.c
@@ -35,9 +35,7 @@ static void hp680bl_send_intensity(struct backlight_device *bd)
 	u16 v;
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (hp680bl_suspended)
 		intensity = 0;
diff --git a/drivers/video/backlight/jornada720_bl.c b/drivers/video/backlight/jornada720_bl.c
index f0385f9cf9da..996f7ba3b373 100644
--- a/drivers/video/backlight/jornada720_bl.c
+++ b/drivers/video/backlight/jornada720_bl.c
@@ -54,7 +54,7 @@ static int jornada_bl_update_status(struct backlight_device *bd)
 	jornada_ssp_start();
 
 	/* If backlight is off then really turn it off */
-	if ((bd->props.power != FB_BLANK_UNBLANK) || (bd->props.fb_blank != FB_BLANK_UNBLANK)) {
+	if (backlight_is_blank(bd)) {
 		ret = jornada_ssp_byte(BRIGHTNESSOFF);
 		if (ret != TXDUMMY) {
 			dev_info(&bd->dev, "brightness off timeout\n");
diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
index 1dfe13c18925..a0fd5d3d82f5 100644
--- a/drivers/video/backlight/kb3886_bl.c
+++ b/drivers/video/backlight/kb3886_bl.c
@@ -89,9 +89,7 @@ static int kb3886bl_send_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (kb3886bl_flags & KB3886BL_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c
index 3f66549997c8..c655ddd99cfb 100644
--- a/drivers/video/backlight/led_bl.c
+++ b/drivers/video/backlight/led_bl.c
@@ -56,9 +56,7 @@ static int led_bl_update_status(struct backlight_device *bl)
 	struct led_bl_data *priv = bl_get_data(bl);
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0)
diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c
index ee09d1bd02b9..476146b62c4e 100644
--- a/drivers/video/backlight/lm3533_bl.c
+++ b/drivers/video/backlight/lm3533_bl.c
@@ -41,9 +41,7 @@ static int lm3533_bl_update_status(struct backlight_device *bd)
 	struct lm3533_bl *bl = bl_get_data(bd);
 	int brightness = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		brightness = 0;
 
 	return lm3533_ctrlbank_set_brightness(&bl->cb, (u8)brightness);
diff --git a/drivers/video/backlight/locomolcd.c b/drivers/video/backlight/locomolcd.c
index cdc02e04f89d..8064cad8d683 100644
--- a/drivers/video/backlight/locomolcd.c
+++ b/drivers/video/backlight/locomolcd.c
@@ -113,9 +113,7 @@ static int locomolcd_set_intensity(struct backlight_device *bd)
 {
 	int intensity = bd->props.brightness;
 
-	if (bd->props.power != FB_BLANK_UNBLANK)
-		intensity = 0;
-	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
+	if (backlight_is_blank(bd))
 		intensity = 0;
 	if (locomolcd_flags & LOCOMOLCD_SUSPENDED)
 		intensity = 0;
diff --git a/drivers/video/backlight/lv5207lp.c b/drivers/video/backlight/lv5207lp.c
index c6ad73a784e2..ef8aa9803577 100644
--- a/drivers/video/backlight/lv5207lp.c
+++ b/drivers/video/backlight/lv5207lp.c
@@ -48,9 +48,7 @@ static int lv5207lp_backlight_update_status(struct backlight_device *backlight)
 	struct lv5207lp *lv = bl_get_data(backlight);
 	int brightness = backlight->props.brightness;
 
-	if (backlight->props.power != FB_BLANK_UNBLANK ||
-	    backlight->props.fb_blank != FB_BLANK_UNBLANK ||
-	    backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
+	if (backlight_is_blank(backlight))
 		brightness = 0;
 
 	if (brightness) {
diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c
index 97cc260ff9d1..b8af2c6407d3 100644
--- a/drivers/video/backlight/max8925_bl.c
+++ b/drivers/video/backlight/max8925_bl.c
@@ -66,13 +66,7 @@ static int max8925_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return max8925_backlight_set(bl, brightness);
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index 82b8d7594701..7d0ffcd37f07 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -111,9 +111,7 @@ static int pwm_backlight_update_status(struct backlight_device *bl)
 	int brightness = bl->props.brightness;
 	struct pwm_state state;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (pb->notify)
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index 3d276b30a78c..9600f5d58ece 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -261,9 +261,7 @@ static int wled_update_status(struct backlight_device *bl)
 	u16 brightness = bl->props.brightness;
 	int rc = 0;
 
-	if (bl->props.power != FB_BLANK_UNBLANK ||
-	    bl->props.fb_blank != FB_BLANK_UNBLANK ||
-	    bl->props.state & BL_CORE_FBBLANK)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	mutex_lock(&wled->lock);
diff --git a/drivers/video/backlight/tps65217_bl.c b/drivers/video/backlight/tps65217_bl.c
index 762e3feed097..1041e5e62ee3 100644
--- a/drivers/video/backlight/tps65217_bl.c
+++ b/drivers/video/backlight/tps65217_bl.c
@@ -82,9 +82,7 @@ static int tps65217_bl_update_status(struct backlight_device *bl)
 	if (bl->props.state & BL_CORE_SUSPENDED)
 		brightness = 0;
 
-	if ((bl->props.power != FB_BLANK_UNBLANK) ||
-		(bl->props.fb_blank != FB_BLANK_UNBLANK))
-		/* framebuffer in low power mode or blanking active */
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	if (brightness > 0) {
diff --git a/drivers/video/backlight/wm831x_bl.c b/drivers/video/backlight/wm831x_bl.c
index e55977d54c15..dc2ab6c8b7f9 100644
--- a/drivers/video/backlight/wm831x_bl.c
+++ b/drivers/video/backlight/wm831x_bl.c
@@ -93,13 +93,7 @@ static int wm831x_backlight_update_status(struct backlight_device *bl)
 {
 	int brightness = bl->props.brightness;
 
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	if (bl->props.state & BL_CORE_SUSPENDED)
+	if (backlight_is_blank(bl))
 		brightness = 0;
 
 	return wm831x_backlight_set(bl, brightness);
-- 
2.25.1

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

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
  2020-05-14 19:09   ` Sam Ravnborg
  (?)
@ 2020-05-14 19:41     ` Daniel Vetter
  -1 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 19:41 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson,
	Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Support Opensource,
	Thierry Reding, Thomas Gleixner, Thomas Zimmermann,
	Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> The backlight support has two properties that express the state:
> - power
> - state
> 
> It is un-documented and easy to get wrong.
> Add backlight_is_blank() helper to make it simpler for drivers
> to get the check of the state correct.
> 
> A lot of drivers also includes checks for fb_blank.
> This check is redundant when the state is checked
> as thus not needed in this helper function.
> Rolling out this helper to all relevant backlight drivers
> will eliminate almost all accesses to fb_blank.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  include/linux/backlight.h | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index b7839ea9d00a..e67e926de1e2 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
>  	return backlight_update_status(bd);
>  }
>  
> +/**
> + * backlight_is_blank - Return true if display is expected to be blank
> + * @bd: the backlight device
> + *
> + * Display is expected to be blank if any of these is true::
> + *
> + *   1) if power in not UNBLANK
> + *   2) if state indicate BLANK or SUSPENDED
> + *
> + * Returns true if display is expected to be blank, false otherwise.
> + */
> +static inline bool backlight_is_blank(struct backlight_device *bd)
> +{
> +	return bd->props.power != FB_BLANK_UNBLANK ||
> +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);

This definition here doesn't match backlight_enabled/disable() functions
we added. I think to avoid lots of pondering and surprises we should try
to make sure these are all matching, so that once we rolled them out
everywhere, we can just replace the complicated state with one flag.
-Daniel

> +}
> +
>  extern struct backlight_device *backlight_device_register(const char *name,
>  	struct device *dev, void *devdata, const struct backlight_ops *ops,
>  	const struct backlight_properties *props);
> -- 
> 2.25.1
> 

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

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:41     ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 19:41 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson,
	Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-ms

On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> The backlight support has two properties that express the state:
> - power
> - state
> 
> It is un-documented and easy to get wrong.
> Add backlight_is_blank() helper to make it simpler for drivers
> to get the check of the state correct.
> 
> A lot of drivers also includes checks for fb_blank.
> This check is redundant when the state is checked
> as thus not needed in this helper function.
> Rolling out this helper to all relevant backlight drivers
> will eliminate almost all accesses to fb_blank.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  include/linux/backlight.h | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index b7839ea9d00a..e67e926de1e2 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
>  	return backlight_update_status(bd);
>  }
>  
> +/**
> + * backlight_is_blank - Return true if display is expected to be blank
> + * @bd: the backlight device
> + *
> + * Display is expected to be blank if any of these is true::
> + *
> + *   1) if power in not UNBLANK
> + *   2) if state indicate BLANK or SUSPENDED
> + *
> + * Returns true if display is expected to be blank, false otherwise.
> + */
> +static inline bool backlight_is_blank(struct backlight_device *bd)
> +{
> +	return bd->props.power != FB_BLANK_UNBLANK ||
> +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);

This definition here doesn't match backlight_enabled/disable() functions
we added. I think to avoid lots of pondering and surprises we should try
to make sure these are all matching, so that once we rolled them out
everywhere, we can just replace the complicated state with one flag.
-Daniel

> +}
> +
>  extern struct backlight_device *backlight_device_register(const char *name,
>  	struct device *dev, void *devdata, const struct backlight_ops *ops,
>  	const struct backlight_properties *props);
> -- 
> 2.25.1
> 

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

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:41     ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 19:41 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	dri-devel, Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Lee Jones, Daniel Thompson, Jonathan Corbet, Tomi Valkeinen,
	Russell King, Andy Gross, Uwe Kleine Konig, linux-pwm,
	Michael Hennerich, Bartlomiej Zolnierkiewicz, Jani Nikula,
	linux-arm-msm, Jyri Sarha, Thomas Gleixner, Allison Randal,
	Support Opensource, Jingoo Han, Douglas Anderson, Zheng Bin,
	Thomas Zimmermann, patches, Enrico Weigelt

On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> The backlight support has two properties that express the state:
> - power
> - state
> 
> It is un-documented and easy to get wrong.
> Add backlight_is_blank() helper to make it simpler for drivers
> to get the check of the state correct.
> 
> A lot of drivers also includes checks for fb_blank.
> This check is redundant when the state is checked
> as thus not needed in this helper function.
> Rolling out this helper to all relevant backlight drivers
> will eliminate almost all accesses to fb_blank.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  include/linux/backlight.h | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index b7839ea9d00a..e67e926de1e2 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
>  	return backlight_update_status(bd);
>  }
>  
> +/**
> + * backlight_is_blank - Return true if display is expected to be blank
> + * @bd: the backlight device
> + *
> + * Display is expected to be blank if any of these is true::
> + *
> + *   1) if power in not UNBLANK
> + *   2) if state indicate BLANK or SUSPENDED
> + *
> + * Returns true if display is expected to be blank, false otherwise.
> + */
> +static inline bool backlight_is_blank(struct backlight_device *bd)
> +{
> +	return bd->props.power != FB_BLANK_UNBLANK ||
> +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);

This definition here doesn't match backlight_enabled/disable() functions
we added. I think to avoid lots of pondering and surprises we should try
to make sure these are all matching, so that once we rolled them out
everywhere, we can just replace the complicated state with one flag.
-Daniel

> +}
> +
>  extern struct backlight_device *backlight_device_register(const char *name,
>  	struct device *dev, void *devdata, const struct backlight_ops *ops,
>  	const struct backlight_properties *props);
> -- 
> 2.25.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
  2020-05-14 19:41     ` Daniel Vetter
  (?)
@ 2020-05-14 19:46       ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:46 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	dri-devel, Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Lee Jones, Daniel Thompson, Jonathan Corbet, Tomi Valkeinen,
	Russell King, Andy Gross, Uwe Kleine Konig, linux-pwm,
	Michael Hennerich, Bartlomiej Zolnierkiewicz, Jani Nikula,
	linux-arm-msm, Jyri Sarha, Thomas Gleixner, Allison Randal,
	Support Opensource, Jingoo Han, Douglas Anderson, Zheng Bin,
	Thomas Zimmermann, patches, Enrico Weigelt

Hi Daniel.

On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > The backlight support has two properties that express the state:
> > - power
> > - state
> > 
> > It is un-documented and easy to get wrong.
> > Add backlight_is_blank() helper to make it simpler for drivers
> > to get the check of the state correct.
> > 
> > A lot of drivers also includes checks for fb_blank.
> > This check is redundant when the state is checked
> > as thus not needed in this helper function.
> > Rolling out this helper to all relevant backlight drivers
> > will eliminate almost all accesses to fb_blank.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Lee Jones <lee.jones@linaro.org>
> > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > Cc: Jingoo Han <jingoohan1@gmail.com>
> > ---
> >  include/linux/backlight.h | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > index b7839ea9d00a..e67e926de1e2 100644
> > --- a/include/linux/backlight.h
> > +++ b/include/linux/backlight.h
> > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> >  	return backlight_update_status(bd);
> >  }
> >  
> > +/**
> > + * backlight_is_blank - Return true if display is expected to be blank
> > + * @bd: the backlight device
> > + *
> > + * Display is expected to be blank if any of these is true::
> > + *
> > + *   1) if power in not UNBLANK
> > + *   2) if state indicate BLANK or SUSPENDED
> > + *
> > + * Returns true if display is expected to be blank, false otherwise.
> > + */
> > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > +{
> > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> 
> This definition here doesn't match backlight_enabled/disable() functions
> we added. I think to avoid lots of pondering and surprises we should try
> to make sure these are all matching, so that once we rolled them out
> everywhere, we can just replace the complicated state with one flag.

Will add it in v2. When all user of fb_blank is dropped we can
safely remove it then.
And as you said on irc, the risk of introducing regressions is lower
as we see some creative uses in the drivers today.
I already did some kind of audit - but I may have missed something.

	Sam

> 
> > +}
> > +
> >  extern struct backlight_device *backlight_device_register(const char *name,
> >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> >  	const struct backlight_properties *props);
> > -- 
> > 2.25.1
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:46       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:46 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	dri-devel, Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Lee Jones, Daniel Thompson, Jonathan Corbet, Tomi Valkeinen,
	Russell King, Andy Gross, Uwe Kleine Konig, linux-pwm,
	Michael Hennerich, Bartlomiej Zolnierkiewicz, Jani

Hi Daniel.

On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > The backlight support has two properties that express the state:
> > - power
> > - state
> > 
> > It is un-documented and easy to get wrong.
> > Add backlight_is_blank() helper to make it simpler for drivers
> > to get the check of the state correct.
> > 
> > A lot of drivers also includes checks for fb_blank.
> > This check is redundant when the state is checked
> > as thus not needed in this helper function.
> > Rolling out this helper to all relevant backlight drivers
> > will eliminate almost all accesses to fb_blank.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Lee Jones <lee.jones@linaro.org>
> > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > Cc: Jingoo Han <jingoohan1@gmail.com>
> > ---
> >  include/linux/backlight.h | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > index b7839ea9d00a..e67e926de1e2 100644
> > --- a/include/linux/backlight.h
> > +++ b/include/linux/backlight.h
> > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> >  	return backlight_update_status(bd);
> >  }
> >  
> > +/**
> > + * backlight_is_blank - Return true if display is expected to be blank
> > + * @bd: the backlight device
> > + *
> > + * Display is expected to be blank if any of these is true::
> > + *
> > + *   1) if power in not UNBLANK
> > + *   2) if state indicate BLANK or SUSPENDED
> > + *
> > + * Returns true if display is expected to be blank, false otherwise.
> > + */
> > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > +{
> > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> 
> This definition here doesn't match backlight_enabled/disable() functions
> we added. I think to avoid lots of pondering and surprises we should try
> to make sure these are all matching, so that once we rolled them out
> everywhere, we can just replace the complicated state with one flag.

Will add it in v2. When all user of fb_blank is dropped we can
safely remove it then.
And as you said on irc, the risk of introducing regressions is lower
as we see some creative uses in the drivers today.
I already did some kind of audit - but I may have missed something.

	Sam

> 
> > +}
> > +
> >  extern struct backlight_device *backlight_device_register(const char *name,
> >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> >  	const struct backlight_properties *props);
> > -- 
> > 2.25.1
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 19:46       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-14 19:46 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Kate Stewart, Kefeng Wang, Douglas Anderson, David Airlie,
	Daniel Vetter, dri-devel, Bjorn Andersson, Thierry Reding,
	Laurent Pinchart, Lee Jones, Daniel Thompson, Jonathan Corbet,
	Russell King, Tomi Valkeinen, Uwe Kleine Konig, linux-pwm,
	Michael Hennerich, Bartlomiej Zolnierkiewicz, Jani Nikula,
	linux-arm-msm, Jyri Sarha, Thomas Gleixner, Allison Randal,
	Support Opensource, Jingoo Han, Andy Gross, Zheng Bin,
	Thomas Zimmermann, patches, Enrico Weigelt

Hi Daniel.

On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > The backlight support has two properties that express the state:
> > - power
> > - state
> > 
> > It is un-documented and easy to get wrong.
> > Add backlight_is_blank() helper to make it simpler for drivers
> > to get the check of the state correct.
> > 
> > A lot of drivers also includes checks for fb_blank.
> > This check is redundant when the state is checked
> > as thus not needed in this helper function.
> > Rolling out this helper to all relevant backlight drivers
> > will eliminate almost all accesses to fb_blank.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Lee Jones <lee.jones@linaro.org>
> > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > Cc: Jingoo Han <jingoohan1@gmail.com>
> > ---
> >  include/linux/backlight.h | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > index b7839ea9d00a..e67e926de1e2 100644
> > --- a/include/linux/backlight.h
> > +++ b/include/linux/backlight.h
> > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> >  	return backlight_update_status(bd);
> >  }
> >  
> > +/**
> > + * backlight_is_blank - Return true if display is expected to be blank
> > + * @bd: the backlight device
> > + *
> > + * Display is expected to be blank if any of these is true::
> > + *
> > + *   1) if power in not UNBLANK
> > + *   2) if state indicate BLANK or SUSPENDED
> > + *
> > + * Returns true if display is expected to be blank, false otherwise.
> > + */
> > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > +{
> > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> 
> This definition here doesn't match backlight_enabled/disable() functions
> we added. I think to avoid lots of pondering and surprises we should try
> to make sure these are all matching, so that once we rolled them out
> everywhere, we can just replace the complicated state with one flag.

Will add it in v2. When all user of fb_blank is dropped we can
safely remove it then.
And as you said on irc, the risk of introducing regressions is lower
as we see some creative uses in the drivers today.
I already did some kind of audit - but I may have missed something.

	Sam

> 
> > +}
> > +
> >  extern struct backlight_device *backlight_device_register(const char *name,
> >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> >  	const struct backlight_properties *props);
> > -- 
> > 2.25.1
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
  2020-05-14 19:46       ` Sam Ravnborg
  (?)
@ 2020-05-14 20:03         ` Daniel Vetter
  -1 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 20:03 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Daniel Vetter, Kate Stewart, Kefeng Wang, David Airlie,
	Daniel Vetter, dri-devel, Bjorn Andersson, Thierry Reding,
	Laurent Pinchart, Lee Jones, Daniel Thompson, Jonathan Corbet,
	Tomi Valkeinen, Russell King, Andy Gross, Uwe Kleine Konig,
	linux-pwm, Michael Hennerich, Bartlomiej Zolnierkiewicz,
	Jani Nikula, linux-arm-msm, Jyri Sarha, Thomas Gleixner,
	Allison Randal, Support Opensource, Jingoo Han, Douglas Anderson,
	Zheng Bin, Thomas Zimmermann, patches, Enrico Weigelt

On Thu, May 14, 2020 at 09:46:46PM +0200, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> > On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > > The backlight support has two properties that express the state:
> > > - power
> > > - state
> > > 
> > > It is un-documented and easy to get wrong.
> > > Add backlight_is_blank() helper to make it simpler for drivers
> > > to get the check of the state correct.
> > > 
> > > A lot of drivers also includes checks for fb_blank.
> > > This check is redundant when the state is checked
> > > as thus not needed in this helper function.
> > > Rolling out this helper to all relevant backlight drivers
> > > will eliminate almost all accesses to fb_blank.
> > > 
> > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > > Cc: Lee Jones <lee.jones@linaro.org>
> > > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > > Cc: Jingoo Han <jingoohan1@gmail.com>
> > > ---
> > >  include/linux/backlight.h | 17 +++++++++++++++++
> > >  1 file changed, 17 insertions(+)
> > > 
> > > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > > index b7839ea9d00a..e67e926de1e2 100644
> > > --- a/include/linux/backlight.h
> > > +++ b/include/linux/backlight.h
> > > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> > >  	return backlight_update_status(bd);
> > >  }
> > >  
> > > +/**
> > > + * backlight_is_blank - Return true if display is expected to be blank
> > > + * @bd: the backlight device
> > > + *
> > > + * Display is expected to be blank if any of these is true::
> > > + *
> > > + *   1) if power in not UNBLANK
> > > + *   2) if state indicate BLANK or SUSPENDED
> > > + *
> > > + * Returns true if display is expected to be blank, false otherwise.
> > > + */
> > > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > > +{
> > > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> > 
> > This definition here doesn't match backlight_enabled/disable() functions
> > we added. I think to avoid lots of pondering and surprises we should try
> > to make sure these are all matching, so that once we rolled them out
> > everywhere, we can just replace the complicated state with one flag.
> 
> Will add it in v2. When all user of fb_blank is dropped we can
> safely remove it then.
> And as you said on irc, the risk of introducing regressions is lower
> as we see some creative uses in the drivers today.
> I already did some kind of audit - but I may have missed something.

btw one pattern I've seen in a few places with a few greps I've just done
is maybe worth putting into a helper too:

backlight_force_enable(bl)
{
	if (bl->brightness == 0)
		bl->brightness = bl->max_brightness;
	backlight_enable(backlight);
}

Just in case you run out of ideas anytime soon :-)

Cheers, Daniel

> 
> 	Sam
> 
> > 
> > > +}
> > > +
> > >  extern struct backlight_device *backlight_device_register(const char *name,
> > >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> > >  	const struct backlight_properties *props);
> > > -- 
> > > 2.25.1
> > > 
> > 
> > -- 
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 20:03         ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 20:03 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Daniel Vetter, Kate Stewart, Kefeng Wang, David Airlie,
	Daniel Vetter, dri-devel, Bjorn Andersson, Thierry Reding,
	Laurent Pinchart, Lee Jones, Daniel Thompson, Jonathan Corbet,
	Tomi Valkeinen, Russell King, Andy Gross, Uwe Kleine Konig,
	linux-pwm, Michael Hennerich, Bartlomiej Zolnierkiewicz

On Thu, May 14, 2020 at 09:46:46PM +0200, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> > On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > > The backlight support has two properties that express the state:
> > > - power
> > > - state
> > > 
> > > It is un-documented and easy to get wrong.
> > > Add backlight_is_blank() helper to make it simpler for drivers
> > > to get the check of the state correct.
> > > 
> > > A lot of drivers also includes checks for fb_blank.
> > > This check is redundant when the state is checked
> > > as thus not needed in this helper function.
> > > Rolling out this helper to all relevant backlight drivers
> > > will eliminate almost all accesses to fb_blank.
> > > 
> > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > > Cc: Lee Jones <lee.jones@linaro.org>
> > > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > > Cc: Jingoo Han <jingoohan1@gmail.com>
> > > ---
> > >  include/linux/backlight.h | 17 +++++++++++++++++
> > >  1 file changed, 17 insertions(+)
> > > 
> > > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > > index b7839ea9d00a..e67e926de1e2 100644
> > > --- a/include/linux/backlight.h
> > > +++ b/include/linux/backlight.h
> > > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> > >  	return backlight_update_status(bd);
> > >  }
> > >  
> > > +/**
> > > + * backlight_is_blank - Return true if display is expected to be blank
> > > + * @bd: the backlight device
> > > + *
> > > + * Display is expected to be blank if any of these is true::
> > > + *
> > > + *   1) if power in not UNBLANK
> > > + *   2) if state indicate BLANK or SUSPENDED
> > > + *
> > > + * Returns true if display is expected to be blank, false otherwise.
> > > + */
> > > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > > +{
> > > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> > 
> > This definition here doesn't match backlight_enabled/disable() functions
> > we added. I think to avoid lots of pondering and surprises we should try
> > to make sure these are all matching, so that once we rolled them out
> > everywhere, we can just replace the complicated state with one flag.
> 
> Will add it in v2. When all user of fb_blank is dropped we can
> safely remove it then.
> And as you said on irc, the risk of introducing regressions is lower
> as we see some creative uses in the drivers today.
> I already did some kind of audit - but I may have missed something.

btw one pattern I've seen in a few places with a few greps I've just done
is maybe worth putting into a helper too:

backlight_force_enable(bl)
{
	if (bl->brightness == 0)
		bl->brightness = bl->max_brightness;
	backlight_enable(backlight);
}

Just in case you run out of ideas anytime soon :-)

Cheers, Daniel

> 
> 	Sam
> 
> > 
> > > +}
> > > +
> > >  extern struct backlight_device *backlight_device_register(const char *name,
> > >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> > >  	const struct backlight_properties *props);
> > > -- 
> > > 2.25.1
> > > 
> > 
> > -- 
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

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

* Re: [PATCH v1 08/18] backlight: add backlight_is_blank()
@ 2020-05-14 20:03         ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2020-05-14 20:03 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Kate Stewart, Kefeng Wang, Douglas Anderson, David Airlie,
	Daniel Vetter, dri-devel, Bjorn Andersson, Thierry Reding,
	Laurent Pinchart, Lee Jones, Daniel Thompson, Jonathan Corbet,
	Russell King, Tomi Valkeinen, Uwe Kleine Konig, linux-pwm,
	Thomas Zimmermann, Michael Hennerich, Bartlomiej Zolnierkiewicz,
	Jani Nikula, linux-arm-msm, Jyri Sarha, Thomas Gleixner,
	Allison Randal, Support Opensource, Jingoo Han, Andy Gross,
	Zheng Bin, patches, Enrico Weigelt

On Thu, May 14, 2020 at 09:46:46PM +0200, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Thu, May 14, 2020 at 09:41:16PM +0200, Daniel Vetter wrote:
> > On Thu, May 14, 2020 at 09:09:51PM +0200, Sam Ravnborg wrote:
> > > The backlight support has two properties that express the state:
> > > - power
> > > - state
> > > 
> > > It is un-documented and easy to get wrong.
> > > Add backlight_is_blank() helper to make it simpler for drivers
> > > to get the check of the state correct.
> > > 
> > > A lot of drivers also includes checks for fb_blank.
> > > This check is redundant when the state is checked
> > > as thus not needed in this helper function.
> > > Rolling out this helper to all relevant backlight drivers
> > > will eliminate almost all accesses to fb_blank.
> > > 
> > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > > Cc: Lee Jones <lee.jones@linaro.org>
> > > Cc: Daniel Thompson <daniel.thompson@linaro.org>
> > > Cc: Jingoo Han <jingoohan1@gmail.com>
> > > ---
> > >  include/linux/backlight.h | 17 +++++++++++++++++
> > >  1 file changed, 17 insertions(+)
> > > 
> > > diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> > > index b7839ea9d00a..e67e926de1e2 100644
> > > --- a/include/linux/backlight.h
> > > +++ b/include/linux/backlight.h
> > > @@ -165,6 +165,23 @@ static inline int backlight_disable(struct backlight_device *bd)
> > >  	return backlight_update_status(bd);
> > >  }
> > >  
> > > +/**
> > > + * backlight_is_blank - Return true if display is expected to be blank
> > > + * @bd: the backlight device
> > > + *
> > > + * Display is expected to be blank if any of these is true::
> > > + *
> > > + *   1) if power in not UNBLANK
> > > + *   2) if state indicate BLANK or SUSPENDED
> > > + *
> > > + * Returns true if display is expected to be blank, false otherwise.
> > > + */
> > > +static inline bool backlight_is_blank(struct backlight_device *bd)
> > > +{
> > > +	return bd->props.power != FB_BLANK_UNBLANK ||
> > > +	       bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
> > 
> > This definition here doesn't match backlight_enabled/disable() functions
> > we added. I think to avoid lots of pondering and surprises we should try
> > to make sure these are all matching, so that once we rolled them out
> > everywhere, we can just replace the complicated state with one flag.
> 
> Will add it in v2. When all user of fb_blank is dropped we can
> safely remove it then.
> And as you said on irc, the risk of introducing regressions is lower
> as we see some creative uses in the drivers today.
> I already did some kind of audit - but I may have missed something.

btw one pattern I've seen in a few places with a few greps I've just done
is maybe worth putting into a helper too:

backlight_force_enable(bl)
{
	if (bl->brightness == 0)
		bl->brightness = bl->max_brightness;
	backlight_enable(backlight);
}

Just in case you run out of ideas anytime soon :-)

Cheers, Daniel

> 
> 	Sam
> 
> > 
> > > +}
> > > +
> > >  extern struct backlight_device *backlight_device_register(const char *name,
> > >  	struct device *dev, void *devdata, const struct backlight_ops *ops,
> > >  	const struct backlight_properties *props);
> > > -- 
> > > 2.25.1
> > > 
> > 
> > -- 
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
  2020-05-14 19:09   ` Sam Ravnborg
  (?)
@ 2020-05-15  8:24     ` Tomi Valkeinen
  -1 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:24 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Support Opensource,
	Thierry Reding, Thomas Gleixner, Thomas Zimmermann,
	Uwe Kleine Konig, Zheng Bin

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Zheng Bin <zhengbin13@huawei.com>
> Cc: Kate Stewart <kstewart@linuxfoundation.org>
> Cc: Enrico Weigelt <info@metux.net>
> Cc: Allison Randal <allison@lohutok.net>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
>   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
>   1 file changed, 8 insertions(+), 10 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-15  8:24     ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:24 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Zheng Bin <zhengbin13@huawei.com>
> Cc: Kate Stewart <kstewart@linuxfoundation.org>
> Cc: Enrico Weigelt <info@metux.net>
> Cc: Allison Randal <allison@lohutok.net>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
>   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
>   1 file changed, 8 insertions(+), 10 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-15  8:24     ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:24 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Jonathan Corbet, Russell King, Andy Gross, Uwe Kleine Konig,
	linux-pwm, Michael Hennerich, Bartlomiej Zolnierkiewicz,
	Jani Nikula, linux-arm-msm, Jyri Sarha, Thomas Gleixner,
	Allison Randal, Support Opensource, patches, Douglas Anderson,
	Zheng Bin, Thomas Zimmermann, Enrico Weigelt

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Zheng Bin <zhengbin13@huawei.com>
> Cc: Kate Stewart <kstewart@linuxfoundation.org>
> Cc: Enrico Weigelt <info@metux.net>
> Cc: Allison Randal <allison@lohutok.net>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
>   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
>   1 file changed, 8 insertions(+), 10 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
  2020-05-14 19:09   ` Sam Ravnborg
  (?)
@ 2020-05-15  8:25     ` Tomi Valkeinen
  -1 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:25 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Support Opensource,
	Thierry Reding, Thomas Gleixner, Thomas Zimmermann,
	Uwe Kleine Konig, Zheng Bin

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
>   1 file changed, 6 insertions(+), 11 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-15  8:25     ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:25 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
>   1 file changed, 6 insertions(+), 11 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-15  8:25     ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2020-05-15  8:25 UTC (permalink / raw)
  To: Sam Ravnborg, dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Jonathan Corbet, Russell King, Andy Gross, Uwe Kleine Konig,
	linux-pwm, Michael Hennerich, Bartlomiej Zolnierkiewicz,
	Jani Nikula, linux-arm-msm, Jyri Sarha, Thomas Gleixner,
	Allison Randal, Support Opensource, patches, Douglas Anderson,
	Zheng Bin, Thomas Zimmermann, Enrico Weigelt

On 14/05/2020 22:09, Sam Ravnborg wrote:
> Look up backlight device using devm_of_find_backlight().
> This simplifies the code and prevents us from hardcoding
> the node name in the driver.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
>   1 file changed, 6 insertions(+), 11 deletions(-)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
  2020-05-14 19:09   ` Sam Ravnborg
  (?)
@ 2020-05-15 20:42     ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:42 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Support Opensource,
	Thierry Reding, Thomas Gleixner, Thomas Zimmermann,
	Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Hi myself and others.

On Thu, May 14, 2020 at 09:09:49PM +0200, Sam Ravnborg wrote:
> There are no external users of of_find_backlight_by_node().
> Make it static so we keep it that way.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  drivers/video/backlight/backlight.c | 22 +++++++++-------------
>  include/linux/backlight.h           | 10 ----------
>  2 files changed, 9 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> index 547aa3e1a03a..91dfcf4a2087 100644
> --- a/drivers/video/backlight/backlight.c
> +++ b/drivers/video/backlight/backlight.c
> @@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
>  	return dev->parent && dev->parent->of_node == data;
>  }
>  
> -/**
> - * of_find_backlight_by_node() - find backlight device by device-tree node
> - * @node: device-tree node of the backlight device
> - *
> - * Returns a pointer to the backlight device corresponding to the given DT
> - * node or NULL if no such backlight device exists or if the device hasn't
> - * been probed yet.
> - *
> - * This function obtains a reference on the backlight device and it is the
> - * caller's responsibility to drop the reference by calling put_device() on
> - * the backlight device's .dev field.
> - */
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node)
> +/* Find backlight device by device-tree node */
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
>  {
>  	struct device *dev;
>  
> @@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
>  	return dev ? to_backlight_device(dev) : NULL;
>  }
>  EXPORT_SYMBOL(of_find_backlight_by_node);
Dropped this EXPORT in v2.

	Sam

> +#else
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
> +{
> +	return NULL;
> +}
>  #endif
>  
>  static struct backlight_device *of_find_backlight(struct device *dev)
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index 3d757a850b88..b7839ea9d00a 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -198,16 +198,6 @@ struct generic_bl_info {
>  	void (*kick_battery)(void);
>  };
>  
> -#ifdef CONFIG_OF
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node);
> -#else
> -static inline struct backlight_device *
> -of_find_backlight_by_node(struct device_node *node)
> -{
> -	return NULL;
> -}
> -#endif
> -
>  #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
>  struct backlight_device *devm_of_find_backlight(struct device *dev);
>  #else
> -- 
> 2.25.1

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

* Re: [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
@ 2020-05-15 20:42     ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:42 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Hi myself and others.

On Thu, May 14, 2020 at 09:09:49PM +0200, Sam Ravnborg wrote:
> There are no external users of of_find_backlight_by_node().
> Make it static so we keep it that way.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  drivers/video/backlight/backlight.c | 22 +++++++++-------------
>  include/linux/backlight.h           | 10 ----------
>  2 files changed, 9 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> index 547aa3e1a03a..91dfcf4a2087 100644
> --- a/drivers/video/backlight/backlight.c
> +++ b/drivers/video/backlight/backlight.c
> @@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
>  	return dev->parent && dev->parent->of_node == data;
>  }
>  
> -/**
> - * of_find_backlight_by_node() - find backlight device by device-tree node
> - * @node: device-tree node of the backlight device
> - *
> - * Returns a pointer to the backlight device corresponding to the given DT
> - * node or NULL if no such backlight device exists or if the device hasn't
> - * been probed yet.
> - *
> - * This function obtains a reference on the backlight device and it is the
> - * caller's responsibility to drop the reference by calling put_device() on
> - * the backlight device's .dev field.
> - */
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node)
> +/* Find backlight device by device-tree node */
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
>  {
>  	struct device *dev;
>  
> @@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
>  	return dev ? to_backlight_device(dev) : NULL;
>  }
>  EXPORT_SYMBOL(of_find_backlight_by_node);
Dropped this EXPORT in v2.

	Sam

> +#else
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
> +{
> +	return NULL;
> +}
>  #endif
>  
>  static struct backlight_device *of_find_backlight(struct device *dev)
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index 3d757a850b88..b7839ea9d00a 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -198,16 +198,6 @@ struct generic_bl_info {
>  	void (*kick_battery)(void);
>  };
>  
> -#ifdef CONFIG_OF
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node);
> -#else
> -static inline struct backlight_device *
> -of_find_backlight_by_node(struct device_node *node)
> -{
> -	return NULL;
> -}
> -#endif
> -
>  #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
>  struct backlight_device *devm_of_find_backlight(struct device *dev);
>  #else
> -- 
> 2.25.1

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

* Re: [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static
@ 2020-05-15 20:42     ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:42 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Hi myself and others.

On Thu, May 14, 2020 at 09:09:49PM +0200, Sam Ravnborg wrote:
> There are no external users of of_find_backlight_by_node().
> Make it static so we keep it that way.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Cc: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Jingoo Han <jingoohan1@gmail.com>
> ---
>  drivers/video/backlight/backlight.c | 22 +++++++++-------------
>  include/linux/backlight.h           | 10 ----------
>  2 files changed, 9 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> index 547aa3e1a03a..91dfcf4a2087 100644
> --- a/drivers/video/backlight/backlight.c
> +++ b/drivers/video/backlight/backlight.c
> @@ -577,19 +577,9 @@ static int of_parent_match(struct device *dev, const void *data)
>  	return dev->parent && dev->parent->of_node == data;
>  }
>  
> -/**
> - * of_find_backlight_by_node() - find backlight device by device-tree node
> - * @node: device-tree node of the backlight device
> - *
> - * Returns a pointer to the backlight device corresponding to the given DT
> - * node or NULL if no such backlight device exists or if the device hasn't
> - * been probed yet.
> - *
> - * This function obtains a reference on the backlight device and it is the
> - * caller's responsibility to drop the reference by calling put_device() on
> - * the backlight device's .dev field.
> - */
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node)
> +/* Find backlight device by device-tree node */
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
>  {
>  	struct device *dev;
>  
> @@ -598,6 +588,12 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
>  	return dev ? to_backlight_device(dev) : NULL;
>  }
>  EXPORT_SYMBOL(of_find_backlight_by_node);
Dropped this EXPORT in v2.

	Sam

> +#else
> +static struct backlight_device *
> +of_find_backlight_by_node(struct device_node *node)
> +{
> +	return NULL;
> +}
>  #endif
>  
>  static struct backlight_device *of_find_backlight(struct device *dev)
> diff --git a/include/linux/backlight.h b/include/linux/backlight.h
> index 3d757a850b88..b7839ea9d00a 100644
> --- a/include/linux/backlight.h
> +++ b/include/linux/backlight.h
> @@ -198,16 +198,6 @@ struct generic_bl_info {
>  	void (*kick_battery)(void);
>  };
>  
> -#ifdef CONFIG_OF
> -struct backlight_device *of_find_backlight_by_node(struct device_node *node);
> -#else
> -static inline struct backlight_device *
> -of_find_backlight_by_node(struct device_node *node)
> -{
> -	return NULL;
> -}
> -#endif
> -
>  #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
>  struct backlight_device *devm_of_find_backlight(struct device *dev);
>  #else
> -- 
> 2.25.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 0/18] backlight updates
  2020-05-14 19:09 ` Sam Ravnborg
  (?)
@ 2020-05-15 20:48   ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:48 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael Hennerich, patches, Russell King, Support Opensource,
	Thierry Reding, Thomas Gleixner, Thomas Zimmermann,
	Tomi Valkeinen, Uwe Kleine Konig, Zheng Bin

Hi all.
i
...

> Sam Ravnborg (18):
>       drm/omap: display: use devm_of_find_backlight
>       drm/tilcdc: use devm_of_find_backlight
Tomi - thanks for the prompt review of the above two patches.

>       video: amba-clcd: use devm_of_find_backlight
Any takes for review/ack of this patch?

>       backlight: make of_find_backlight static
>       backlight: drop backlight_put()
>       backlight: make of_find_backlight_by_node() static
The above three patches are moved to the end of the patchset in v2.
They cannot be applied before the users are gone.
As we will remove users of of_find_backlight_by_node() in
drm-misc-next, we can only merge the "make static" patches in the
backlight tree after the merge window.
So move them to the end so we may apply other patches before.

I plan to send v2 end of the weekend, and hope for some feedback on the
doc pathches until then.

	Sam

>       backlight: refactor fb_notifier_callback()
>       backlight: add backlight_is_blank()
>       backlight: improve backlight_ops documentation
>       backlight: improve backlight_properties documentation
>       backlight: improve backlight_device documentation
>       backlight: document inline functions in backlight.h
>       backlight: document enums in backlight.h
>       backlight: remove the unused backlight_bl driver
>       backlight: drop extern from prototypes
>       backlight: add overview and update doc
>       backlight: wire up kernel-doc documentation
>       backlight: use backlight_is_blank() in all backlight drivers
> 
>  Documentation/gpu/backlight.rst                 |  12 +
>  Documentation/gpu/index.rst                     |   1 +
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
>  drivers/video/backlight/88pm860x_bl.c           |   8 +-
>  drivers/video/backlight/Kconfig                 |   8 -
>  drivers/video/backlight/Makefile                |   1 -
>  drivers/video/backlight/adp5520_bl.c            |   5 +-
>  drivers/video/backlight/adp8860_bl.c            |   5 +-
>  drivers/video/backlight/adp8870_bl.c            |   5 +-
>  drivers/video/backlight/as3711_bl.c             |   8 +-
>  drivers/video/backlight/backlight.c             | 237 ++++++++------
>  drivers/video/backlight/bd6107.c                |   4 +-
>  drivers/video/backlight/corgi_lcd.c             |   5 +-
>  drivers/video/backlight/cr_bllcd.c              |  22 +-
>  drivers/video/backlight/da903x_bl.c             |   8 +-
>  drivers/video/backlight/ep93xx_bl.c             |   3 +-
>  drivers/video/backlight/generic_bl.c            | 110 -------
>  drivers/video/backlight/gpio_backlight.c        |   4 +-
>  drivers/video/backlight/hp680_bl.c              |   4 +-
>  drivers/video/backlight/jornada720_bl.c         |   2 +-
>  drivers/video/backlight/kb3886_bl.c             |   4 +-
>  drivers/video/backlight/led_bl.c                |   4 +-
>  drivers/video/backlight/lm3533_bl.c             |   4 +-
>  drivers/video/backlight/locomolcd.c             |   4 +-
>  drivers/video/backlight/lv5207lp.c              |   4 +-
>  drivers/video/backlight/max8925_bl.c            |   8 +-
>  drivers/video/backlight/pwm_bl.c                |   4 +-
>  drivers/video/backlight/qcom-wled.c             |   4 +-
>  drivers/video/backlight/tps65217_bl.c           |   4 +-
>  drivers/video/backlight/wm831x_bl.c             |   8 +-
>  drivers/video/fbdev/amba-clcd.c                 |  19 +-
>  include/linux/backlight.h                       | 415 +++++++++++++++++++-----
>  33 files changed, 536 insertions(+), 433 deletions(-)
> 

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

* Re: [PATCH v1 0/18] backlight updates
@ 2020-05-15 20:48   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:48 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Allison Randal, Andy Gross, Bartlomiej Zolnierkiewicz,
	Bjorn Andersson, Daniel Vetter, David Airlie, Douglas Anderson,
	Enrico Weigelt, Jani Nikula, Jonathan Corbet, Jyri Sarha,
	Kate Stewart, Kefeng Wang, Laurent Pinchart, Linus Walleij,
	linux-arm-msm, linux-pwm, Maarten Lankhorst, Maxime Ripard,
	Michael

Hi all.
i
...

> Sam Ravnborg (18):
>       drm/omap: display: use devm_of_find_backlight
>       drm/tilcdc: use devm_of_find_backlight
Tomi - thanks for the prompt review of the above two patches.

>       video: amba-clcd: use devm_of_find_backlight
Any takes for review/ack of this patch?

>       backlight: make of_find_backlight static
>       backlight: drop backlight_put()
>       backlight: make of_find_backlight_by_node() static
The above three patches are moved to the end of the patchset in v2.
They cannot be applied before the users are gone.
As we will remove users of of_find_backlight_by_node() in
drm-misc-next, we can only merge the "make static" patches in the
backlight tree after the merge window.
So move them to the end so we may apply other patches before.

I plan to send v2 end of the weekend, and hope for some feedback on the
doc pathches until then.

	Sam

>       backlight: refactor fb_notifier_callback()
>       backlight: add backlight_is_blank()
>       backlight: improve backlight_ops documentation
>       backlight: improve backlight_properties documentation
>       backlight: improve backlight_device documentation
>       backlight: document inline functions in backlight.h
>       backlight: document enums in backlight.h
>       backlight: remove the unused backlight_bl driver
>       backlight: drop extern from prototypes
>       backlight: add overview and update doc
>       backlight: wire up kernel-doc documentation
>       backlight: use backlight_is_blank() in all backlight drivers
> 
>  Documentation/gpu/backlight.rst                 |  12 +
>  Documentation/gpu/index.rst                     |   1 +
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
>  drivers/video/backlight/88pm860x_bl.c           |   8 +-
>  drivers/video/backlight/Kconfig                 |   8 -
>  drivers/video/backlight/Makefile                |   1 -
>  drivers/video/backlight/adp5520_bl.c            |   5 +-
>  drivers/video/backlight/adp8860_bl.c            |   5 +-
>  drivers/video/backlight/adp8870_bl.c            |   5 +-
>  drivers/video/backlight/as3711_bl.c             |   8 +-
>  drivers/video/backlight/backlight.c             | 237 ++++++++------
>  drivers/video/backlight/bd6107.c                |   4 +-
>  drivers/video/backlight/corgi_lcd.c             |   5 +-
>  drivers/video/backlight/cr_bllcd.c              |  22 +-
>  drivers/video/backlight/da903x_bl.c             |   8 +-
>  drivers/video/backlight/ep93xx_bl.c             |   3 +-
>  drivers/video/backlight/generic_bl.c            | 110 -------
>  drivers/video/backlight/gpio_backlight.c        |   4 +-
>  drivers/video/backlight/hp680_bl.c              |   4 +-
>  drivers/video/backlight/jornada720_bl.c         |   2 +-
>  drivers/video/backlight/kb3886_bl.c             |   4 +-
>  drivers/video/backlight/led_bl.c                |   4 +-
>  drivers/video/backlight/lm3533_bl.c             |   4 +-
>  drivers/video/backlight/locomolcd.c             |   4 +-
>  drivers/video/backlight/lv5207lp.c              |   4 +-
>  drivers/video/backlight/max8925_bl.c            |   8 +-
>  drivers/video/backlight/pwm_bl.c                |   4 +-
>  drivers/video/backlight/qcom-wled.c             |   4 +-
>  drivers/video/backlight/tps65217_bl.c           |   4 +-
>  drivers/video/backlight/wm831x_bl.c             |   8 +-
>  drivers/video/fbdev/amba-clcd.c                 |  19 +-
>  include/linux/backlight.h                       | 415 +++++++++++++++++++-----
>  33 files changed, 536 insertions(+), 433 deletions(-)
> 

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

* Re: [PATCH v1 0/18] backlight updates
@ 2020-05-15 20:48   ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-15 20:48 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Jonathan Corbet, Tomi Valkeinen, Russell King, Andy Gross,
	Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

Hi all.
i
...

> Sam Ravnborg (18):
>       drm/omap: display: use devm_of_find_backlight
>       drm/tilcdc: use devm_of_find_backlight
Tomi - thanks for the prompt review of the above two patches.

>       video: amba-clcd: use devm_of_find_backlight
Any takes for review/ack of this patch?

>       backlight: make of_find_backlight static
>       backlight: drop backlight_put()
>       backlight: make of_find_backlight_by_node() static
The above three patches are moved to the end of the patchset in v2.
They cannot be applied before the users are gone.
As we will remove users of of_find_backlight_by_node() in
drm-misc-next, we can only merge the "make static" patches in the
backlight tree after the merge window.
So move them to the end so we may apply other patches before.

I plan to send v2 end of the weekend, and hope for some feedback on the
doc pathches until then.

	Sam

>       backlight: refactor fb_notifier_callback()
>       backlight: add backlight_is_blank()
>       backlight: improve backlight_ops documentation
>       backlight: improve backlight_properties documentation
>       backlight: improve backlight_device documentation
>       backlight: document inline functions in backlight.h
>       backlight: document enums in backlight.h
>       backlight: remove the unused backlight_bl driver
>       backlight: drop extern from prototypes
>       backlight: add overview and update doc
>       backlight: wire up kernel-doc documentation
>       backlight: use backlight_is_blank() in all backlight drivers
> 
>  Documentation/gpu/backlight.rst                 |  12 +
>  Documentation/gpu/index.rst                     |   1 +
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c |  18 +-
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c           |  17 +-
>  drivers/video/backlight/88pm860x_bl.c           |   8 +-
>  drivers/video/backlight/Kconfig                 |   8 -
>  drivers/video/backlight/Makefile                |   1 -
>  drivers/video/backlight/adp5520_bl.c            |   5 +-
>  drivers/video/backlight/adp8860_bl.c            |   5 +-
>  drivers/video/backlight/adp8870_bl.c            |   5 +-
>  drivers/video/backlight/as3711_bl.c             |   8 +-
>  drivers/video/backlight/backlight.c             | 237 ++++++++------
>  drivers/video/backlight/bd6107.c                |   4 +-
>  drivers/video/backlight/corgi_lcd.c             |   5 +-
>  drivers/video/backlight/cr_bllcd.c              |  22 +-
>  drivers/video/backlight/da903x_bl.c             |   8 +-
>  drivers/video/backlight/ep93xx_bl.c             |   3 +-
>  drivers/video/backlight/generic_bl.c            | 110 -------
>  drivers/video/backlight/gpio_backlight.c        |   4 +-
>  drivers/video/backlight/hp680_bl.c              |   4 +-
>  drivers/video/backlight/jornada720_bl.c         |   2 +-
>  drivers/video/backlight/kb3886_bl.c             |   4 +-
>  drivers/video/backlight/led_bl.c                |   4 +-
>  drivers/video/backlight/lm3533_bl.c             |   4 +-
>  drivers/video/backlight/locomolcd.c             |   4 +-
>  drivers/video/backlight/lv5207lp.c              |   4 +-
>  drivers/video/backlight/max8925_bl.c            |   8 +-
>  drivers/video/backlight/pwm_bl.c                |   4 +-
>  drivers/video/backlight/qcom-wled.c             |   4 +-
>  drivers/video/backlight/tps65217_bl.c           |   4 +-
>  drivers/video/backlight/wm831x_bl.c             |   8 +-
>  drivers/video/fbdev/amba-clcd.c                 |  19 +-
>  include/linux/backlight.h                       | 415 +++++++++++++++++++-----
>  33 files changed, 536 insertions(+), 433 deletions(-)
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
  2020-05-15  8:24     ` Tomi Valkeinen
  (?)
@ 2020-05-17 12:58       ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson, Kate Stewart,
	Kefeng Wang, David Airlie, Daniel Vetter, Bjorn Andersson,
	Thierry Reding, Laurent Pinchart, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

On Fri, May 15, 2020 at 11:24:53AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > Cc: Zheng Bin <zhengbin13@huawei.com>
> > Cc: Kate Stewart <kstewart@linuxfoundation.org>
> > Cc: Enrico Weigelt <info@metux.net>
> > Cc: Allison Randal <allison@lohutok.net>
> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > ---
> >   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
> >   1 file changed, 8 insertions(+), 10 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

	Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-17 12:58       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson, Kate Stewart,
	Kefeng Wang, David Airlie, Daniel Vetter, Bjorn Andersson,
	Thierry Reding, Laurent Pinchart, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula

On Fri, May 15, 2020 at 11:24:53AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > Cc: Zheng Bin <zhengbin13@huawei.com>
> > Cc: Kate Stewart <kstewart@linuxfoundation.org>
> > Cc: Enrico Weigelt <info@metux.net>
> > Cc: Allison Randal <allison@lohutok.net>
> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > ---
> >   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
> >   1 file changed, 8 insertions(+), 10 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

	Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight
@ 2020-05-17 12:58       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	dri-devel, Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Lee Jones, Daniel Thompson, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	Jingoo Han, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	patches, Enrico Weigelt

On Fri, May 15, 2020 at 11:24:53AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > Cc: Zheng Bin <zhengbin13@huawei.com>
> > Cc: Kate Stewart <kstewart@linuxfoundation.org>
> > Cc: Enrico Weigelt <info@metux.net>
> > Cc: Allison Randal <allison@lohutok.net>
> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > ---
> >   .../gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 18 ++++++++----------
> >   1 file changed, 8 insertions(+), 10 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

	Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
  2020-05-15  8:25     ` Tomi Valkeinen
  (?)
@ 2020-05-17 12:58       ` Sam Ravnborg
  -1 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson, Kate Stewart,
	Kefeng Wang, David Airlie, Daniel Vetter, Bjorn Andersson,
	Thierry Reding, Laurent Pinchart, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	patches, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	Enrico Weigelt

On Fri, May 15, 2020 at 11:25:47AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Jyri Sarha <jsarha@ti.com>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> >   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
> >   1 file changed, 6 insertions(+), 11 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

        Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-17 12:58       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson, Kate Stewart,
	Kefeng Wang, David Airlie, Daniel Vetter, Bjorn Andersson,
	Thierry Reding, Laurent Pinchart, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula

On Fri, May 15, 2020 at 11:25:47AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Jyri Sarha <jsarha@ti.com>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> >   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
> >   1 file changed, 6 insertions(+), 11 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

        Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v1 02/18] drm/tilcdc: use devm_of_find_backlight
@ 2020-05-17 12:58       ` Sam Ravnborg
  0 siblings, 0 replies; 84+ messages in thread
From: Sam Ravnborg @ 2020-05-17 12:58 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Kate Stewart, Kefeng Wang, David Airlie, Daniel Vetter,
	dri-devel, Bjorn Andersson, Thierry Reding, Laurent Pinchart,
	Lee Jones, Daniel Thompson, Jonathan Corbet, Russell King,
	Andy Gross, Uwe Kleine Konig, linux-pwm, Michael Hennerich,
	Bartlomiej Zolnierkiewicz, Jani Nikula, linux-arm-msm,
	Jyri Sarha, Thomas Gleixner, Allison Randal, Support Opensource,
	Jingoo Han, Douglas Anderson, Zheng Bin, Thomas Zimmermann,
	patches, Enrico Weigelt

On Fri, May 15, 2020 at 11:25:47AM +0300, Tomi Valkeinen wrote:
> On 14/05/2020 22:09, Sam Ravnborg wrote:
> > Look up backlight device using devm_of_find_backlight().
> > This simplifies the code and prevents us from hardcoding
> > the node name in the driver.
> > 
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Jyri Sarha <jsarha@ti.com>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> >   drivers/gpu/drm/tilcdc/tilcdc_panel.c | 17 ++++++-----------
> >   1 file changed, 6 insertions(+), 11 deletions(-)
> 
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Thanks, pushed to drm-misc-next.

        Sam

> 
>  Tomi
> 
> -- 
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2020-05-17 12:58 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-14 19:09 [PATCH v1 0/18] backlight updates Sam Ravnborg
2020-05-14 19:09 ` Sam Ravnborg
2020-05-14 19:09 ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 01/18] drm/omap: display: use devm_of_find_backlight Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-15  8:24   ` Tomi Valkeinen
2020-05-15  8:24     ` Tomi Valkeinen
2020-05-15  8:24     ` Tomi Valkeinen
2020-05-17 12:58     ` Sam Ravnborg
2020-05-17 12:58       ` Sam Ravnborg
2020-05-17 12:58       ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 02/18] drm/tilcdc: " Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-15  8:25   ` Tomi Valkeinen
2020-05-15  8:25     ` Tomi Valkeinen
2020-05-15  8:25     ` Tomi Valkeinen
2020-05-17 12:58     ` Sam Ravnborg
2020-05-17 12:58       ` Sam Ravnborg
2020-05-17 12:58       ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 03/18] video: amba-clcd: " Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 04/18] backlight: make of_find_backlight static Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 05/18] backlight: drop backlight_put() Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 06/18] backlight: make of_find_backlight_by_node() static Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-15 20:42   ` Sam Ravnborg
2020-05-15 20:42     ` Sam Ravnborg
2020-05-15 20:42     ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 07/18] backlight: refactor fb_notifier_callback() Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 08/18] backlight: add backlight_is_blank() Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:41   ` Daniel Vetter
2020-05-14 19:41     ` Daniel Vetter
2020-05-14 19:41     ` Daniel Vetter
2020-05-14 19:46     ` Sam Ravnborg
2020-05-14 19:46       ` Sam Ravnborg
2020-05-14 19:46       ` Sam Ravnborg
2020-05-14 20:03       ` Daniel Vetter
2020-05-14 20:03         ` Daniel Vetter
2020-05-14 20:03         ` Daniel Vetter
2020-05-14 19:09 ` [PATCH v1 09/18] backlight: improve backlight_ops documentation Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 10/18] backlight: improve backlight_properties documentation Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 11/18] backlight: improve backlight_device documentation Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 12/18] backlight: document inline functions in backlight.h Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 13/18] backlight: document enums " Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 14/18] backlight: remove the unused backlight_bl driver Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 15/18] backlight: drop extern from prototypes Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09 ` [PATCH v1 16/18] backlight: add overview and update existing doc Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:09   ` Sam Ravnborg
2020-05-14 19:10 ` [PATCH v1 17/18] backlight: wire up kernel-doc documentation Sam Ravnborg
2020-05-14 19:10   ` Sam Ravnborg
2020-05-14 19:10   ` Sam Ravnborg
2020-05-14 19:10 ` [PATCH v1 18/18] backlight: use backlight_is_blank() in all backlight drivers Sam Ravnborg
2020-05-14 19:10   ` Sam Ravnborg
2020-05-14 19:10   ` Sam Ravnborg
2020-05-15 20:48 ` [PATCH v1 0/18] backlight updates Sam Ravnborg
2020-05-15 20:48   ` Sam Ravnborg
2020-05-15 20:48   ` Sam Ravnborg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.