[RFC PATCH v1 0/22] backlight: add init macros and accessors
daniel at ffwll.ch
daniel at ffwll.ch
Tue Aug 4 16:51:26 UTC 2020
On Sun, Aug 02, 2020 at 01:06:14PM +0200, Sam Ravnborg wrote:
> 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
> backlight_properties.
>
> To align how backlight drivers are initialized introduce following helper macros:
> - DECLARE_BACKLIGHT_INIT_FIRMWARE()
> - DECLARE_BACKLIGHT_INIT_PLATFORM()
> - DECLARE_BACKLIGHT_INIT_RAW()
>
> 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 https://lore.kernel.org/dri-devel/ for the full series.
>
> Feedback welcome!
Since this needs backlight patches queued up outside of drm there's two
options:
- merge the backlight stuff through drm-misc (imo simplest, we have all
the fbdev stuff in there too by now)
- shared topic branch merged in drm-misc and optionally backlight tree
Otherwise this is going to be a pain to merge.
-Daniel
>
> Sam
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: amd-gfx at lists.freedesktop.org
> Cc: Andrzej Hajda <a.hajda at samsung.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Daniel Thompson <daniel.thompson at linaro.org>
> Cc: Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>
> Cc: Hans de Goede <hdegoede at redhat.com>
> Cc: Hoegeun Kwon <hoegeun.kwon at samsung.com>
> Cc: Inki Dae <inki.dae at samsung.com>
> Cc: Jani Nikula <jani.nikula at linux.intel.com>
> Cc: Jernej Skrabec <jernej.skrabec at siol.net>
> Cc: Jingoo Han <jingoohan1 at gmail.com>
> Cc: Jonas Karlman <jonas at kwiboo.se>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Jyri Sarha <jsarha at ti.com>
> Cc: Kieran Bingham <kieran.bingham+renesas at ideasonboard.com>
> Cc: Konrad Dybcio <konradybcio at gmail.com>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Cc: Lee Jones <lee.jones at linaro.org>
> Cc: Linus Walleij <linus.walleij at linaro.org>
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Manasi Navare <manasi.d.navare at intel.com>
> Cc: Neil Armstrong <narmstrong at baylibre.com>
> Cc: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
> Cc: Paweł Chmiel <pawel.mikolaj.chmiel at gmail.com>
> Cc: Philippe CORNU <philippe.cornu at st.com>
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Robert Chiras <robert.chiras at nxp.com>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Cc: Sam Ravnborg <sam at ravnborg.org>
> Cc: Sebastian Reichel <sebastian.reichel at collabora.com>
> Cc: Thierry Reding <thierry.reding at gmail.com>
> Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala at linux.intel.com>
> Cc: Vinay Simha BN <simhavcs at gmail.com>
> Cc: Wambui Karuga <wambui.karugax at gmail.com>
> Cc: Zheng Bin <zhengbin13 at huawei.com>
>
> 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(-)
>
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list