AMD-GFX 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 18/22] drm/radeon: Backlight update Sam Ravnborg
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Sam Ravnborg @ 2020-08-02 11:06 UTC (permalink / raw)
  To: dri-devel, Jingoo Han, Lee Jones, Daniel Thompson
  Cc: Neil Armstrong, Daniel Vetter, Linus Walleij, Joonas Lahtinen,
	Chris Wilson, Andrzej Hajda, Thierry Reding, Laurent Pinchart,
	Sam Ravnborg, Sebastian Reichel, Ville Syrjälä,
	Manasi Navare, Konrad Dybcio, amd-gfx, Zheng Bin, Tomi Valkeinen,
	Ezequiel Garcia, Robert Chiras, Vinay Simha BN, Hoegeun Kwon,
	Paweł Chmiel, Jonas Karlman, Maarten Lankhorst, Jani Nikula,
	Inki Dae, Hans de Goede, Jyri Sarha, Rodrigo Vivi,
	Jernej Skrabec, Philippe CORNU, Patrik Jakobsson,
	linux-renesas-soc, Rob Clark, Kieran Bingham, Alex Deucher,
	Wambui Karuga, Christian König

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(-)

amd-gfx mailing list

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

end of thread, back to index

Thread overview: 4+ 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 18/22] drm/radeon: Backlight update Sam Ravnborg
2020-08-02 11:06 ` [PATCH v1 19/22] drm/amdgpu/atom: " Sam Ravnborg
2020-08-04 16:51 ` [RFC PATCH v1 0/22] backlight: add init macros and accessors daniel

AMD-GFX Archive on

Archives are clonable:
	git clone --mirror amd-gfx/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 amd-gfx amd-gfx/ \
	public-inbox-index amd-gfx

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone