Linux-Renesas-SoC Archive on
 help / color / Atom feed
* [RFC PATCH v1 0/22] backlight: add init macros and accessors
@ 2020-08-02 11:06 Sam Ravnborg
  2020-08-02 11:06 ` [PATCH v1 22/22] drm/shmobile: Backlight update Sam Ravnborg
  2020-08-04 16:51 ` [RFC PATCH v1 0/22] backlight: add init macros and accessors daniel
  0 siblings, 2 replies; 3+ messages in thread
From: Sam Ravnborg @ 2020-08-02 11:06 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Daniel Vetter, Sam Ravnborg, Alex Deucher, amd-gfx,
	Andrzej Hajda, Christian König, Chris Wilson,
	Ezequiel Garcia, Hans de Goede, Hoegeun Kwon, Inki Dae,
	Jani Nikula, Jernej Skrabec, Jonas Karlman, Joonas Lahtinen,
	Jyri Sarha, Kieran Bingham, Konrad Dybcio, Laurent Pinchart,
	Linus Walleij, linux-renesas-soc, Maarten Lankhorst,
	Manasi Navare, Neil Armstrong, Patrik Jakobsson,
	Paweł Chmiel, Philippe CORNU, Rob Clark, Robert Chiras,
	Rodrigo Vivi, Sebastian Reichel, Thierry Reding, Tomi Valkeinen,
	Ville Syrjälä,
	Vinay Simha BN, Wambui Karuga, Zheng Bin

The backlight drivers uses several different patterns when registering
a backlight:

- Register backlight and assign properties later
- Define a local backlight_properties variable and use memset
- Define a const backlight_properties and assign relevant properties

On top of this there was differences in what members was assigned in

To align how backlight drivers are initialized introduce following helper macros:

The macros are introduced in patch 2.

The backlight drivers used direct access to backlight_properties.
Encapsulate these in get/set access operations resulting in following benefits:
- The drivers no longer need to be concerned about the confusing power states,
  as there is now only a set_power_on() and set_power_off() operation.
- The access methods can be called with a NULL pointer so logic around the
  access can be made simpler.
- The code is in most cases more readable with the access operations.
- When everyone uses the access methods refactroring in the backlight core is simpler.

The get/set operations are introduced in patch 3.

The first patch trims backlight_update_status() so it can be called with a NULL
backlight_device. Then the called do not need to add this check just to avoid
a NULL reference.

The fourth patch introduce the new macros and get/set operations for the
gpio backlight driver, as an example.

The remaining patches updates most backlight users in drivers/gpu/drm/*
With this patch set applied then:
- Almost all references to FB_BLANK* are gone from drm/*
- All panel drivers uses devm_ variant for registering backlight
- Almost all direct references to backlight properties are gone

The drm/* patches are  used as examples how drivers can benefit from the
new macros and get/set operations.

Individual patches are only sent to the people listed in the patch + a few more.
Please check for the full series.

Feedback welcome!


Cc: Alex Deucher <>
Cc: Andrzej Hajda <>
Cc: Christian König <>
Cc: Chris Wilson <>
Cc: Daniel Thompson <>
Cc: Ezequiel Garcia <>
Cc: Hans de Goede <>
Cc: Hoegeun Kwon <>
Cc: Inki Dae <>
Cc: Jani Nikula <>
Cc: Jernej Skrabec <>
Cc: Jingoo Han <>
Cc: Jonas Karlman <>
Cc: Joonas Lahtinen <>
Cc: Jyri Sarha <>
Cc: Kieran Bingham <>
Cc: Konrad Dybcio <>
Cc: Laurent Pinchart <>
Cc: Lee Jones <>
Cc: Linus Walleij <>
Cc: Maarten Lankhorst <>
Cc: Manasi Navare <>
Cc: Neil Armstrong <>
Cc: Patrik Jakobsson <>
Cc: Paweł Chmiel <>
Cc: Philippe CORNU <>
Cc: Rob Clark <>
Cc: Robert Chiras <>
Cc: Rodrigo Vivi <>
Cc: Sam Ravnborg <>
Cc: Sebastian Reichel <>
Cc: Thierry Reding <>
Cc: Tomi Valkeinen <>
Cc: "Ville Syrjälä" <>
Cc: Vinay Simha BN <>
Cc: Wambui Karuga <>
Cc: Zheng Bin <>

Sam Ravnborg (22):
      backlight: Silently fail backlight_update_status() if no device
      backlight: Add DECLARE_* macro for device registration
      backlight: Add get/set operations for brightness/power properties
      backlight: gpio: Use DECLARE_BACKLIGHT_INIT_RAW and get/setters
      drm/gma500: Backlight support
      drm/panel: asus-z00t-tm5p5-n35596: Backlight update
      drm/panel: jdi-lt070me05000: Backlight update
      drm/panel: novatek-nt35510: Backlight update
      drm/panel: orisetech-otm8009a: Backlight update
      drm/panel: raydium-rm67191: Backlight update
      drm/panel: samsung-s6e63m0: Backlight update
      drm/panel: samsung-s6e63j0x03: Backlight update
      drm/panel: samsung-s6e3ha2: Backlight update
      drm/panel: sony-acx424akp: Backlight update
      drm/panel: sony-acx565akm: Backlight update
      drm/bridge: parade-ps8622: Backlight update
      drm/tilcdc: Backlight update
      drm/radeon: Backlight update
      drm/amdgpu/atom: Backlight update
      drm/i915: Backlight update
      drm/omap: display: Backlight update
      drm/shmobile: Backlight update

 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c     |  15 ++-
 drivers/gpu/drm/bridge/parade-ps8622.c             |  43 ++++----
 drivers/gpu/drm/gma500/backlight.c                 |  35 ++----
 drivers/gpu/drm/gma500/cdv_device.c                |  29 +++--
 drivers/gpu/drm/gma500/mdfld_device.c              |   9 +-
 drivers/gpu/drm/gma500/oaktrail_device.c           |  10 +-
 drivers/gpu/drm/gma500/opregion.c                  |   2 +-
 drivers/gpu/drm/gma500/psb_device.c                |  10 +-
 drivers/gpu/drm/gma500/psb_drv.c                   |   8 +-
 drivers/gpu/drm/i915/display/intel_panel.c         |  88 +++++++--------
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c    |  35 ++----
 .../gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c   |  15 +--
 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c     |  17 ++-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c      |   9 +-
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c   |  14 +--
 drivers/gpu/drm/panel/panel-raydium-rm67191.c      |  11 +-
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c      |  68 ++++++------
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c   |  56 +++++-----
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c      |  25 ++---
 drivers/gpu/drm/panel/panel-sony-acx424akp.c       |  49 ++-------
 drivers/gpu/drm/panel/panel-sony-acx565akm.c       |  44 +++-----
 drivers/gpu/drm/radeon/atombios_encoders.c         |  23 ++--
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c    |  15 ++-
 drivers/gpu/drm/shmobile/shmob_drm_backlight.c     |  20 ++--
 drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  11 +-
 drivers/video/backlight/gpio_backlight.c           |  17 ++-
 include/linux/backlight.h                          | 120 +++++++++++++++++++++
 27 files changed, 377 insertions(+), 421 deletions(-)

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

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-02 11:06 [RFC PATCH v1 0/22] backlight: add init macros and accessors Sam Ravnborg
2020-08-02 11:06 ` [PATCH v1 22/22] drm/shmobile: Backlight update Sam Ravnborg
2020-08-04 16:51 ` [RFC PATCH v1 0/22] backlight: add init macros and accessors daniel

Linux-Renesas-SoC Archive on

Archives are clonable:
	git clone --mirror linux-renesas-soc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-renesas-soc linux-renesas-soc/ \
	public-inbox-index linux-renesas-soc

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone