At Display Next Hackfest 2026 we reviewed progress moving brightness
control into the DRM connector properties.

There is a range LUMINANCE property that will default to 0->0.
Once a driver attaches a backlight it will be updated to 1->max.
If the panel supports the minimum backlight turning off the display
the range can later be updated to 0->max instead of 1->max.

Version 8 had a lot of review feedback, and the biggest change is that
this no longer has the legacy sysfs interface for brightness control.

There is a Kconfig knob introduced that turns on the new API, and when
the new API is available all drivers will conflict with the old backlight
control API.

This will allow us to land the new brightness control API and the transition
to the new API separately.  *This series only tracks the new API itself.*

The following compositors have implemented matching support, although they
need to be changed again for items modified in v10 (the dropped cap):
 * Kwin: https://invent.kde.org/plasma/kwin/-/merge_requests/9298
 * Mutter: 
https://gitlab.gnome.org/swick/mutter/-/commits/wip/kms-luminance-prop
 * Wlroots: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5384

I've tested this series using modetest on amdgpu.

The series is also available on this branch for easy testing.

https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git/log/?h=superm1/backlight-property-v10

Signed-off-by: Mario Limonciello <[email protected]>
---
Changes in v10:

* Split patch 7 (panel/bridge connector luminance forwarding) into three
   separate patches:
  - drm/bridge: add connector luminance operations
  - drm/panel: add connector luminance forwarding
  - drm/bridge_connector: add luminance support
 * Dropped MIPI-DBI tiny driver migrations and the new mipi_dbi connector
   luminance helpers (Javier): backlight is always NULL when
   CONFIG_BACKLIGHT_CLASS_DEVICE is disabled, so these drivers can't
   support LUMINANCE without DT binding changes or a new
   CONFIG_BACKLIGHT_SYSFS option. Will revisit later.
 * Added IS_ENABLED(CONFIG_DRM_LUMINANCE) conditional guards to all
   individual DRM driver patches that call 
drm_connector_attach_luminance_property()
 * Moved the LUMINANCE property patch after the new "Add support for a
   DRM backlight capability" patch to better separate backlight vs
   luminance functionality
 * Link to v9: 
https://lore.kernel.org/dri-devel/[email protected]/

To: Maxime Ripard <[email protected]>
To: Alex Deucher <[email protected]>
To: Jani Nikula <[email protected]>
To: Javier Martinez Canillas <[email protected]>
To: Maarten Lankhorst <[email protected]>
To: Thomas Zimmermann <[email protected]>
To: David Airlie <[email protected]>
To: Simona Vetter <[email protected]>
To: Harry Wentland <[email protected]>
To: Leo Li <[email protected]>
To: Rodrigo Siqueira <[email protected]>
Cc: Xaver Hugl <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

---
Mario Limonciello (13):
      drm: add connector LUMINANCE property
      drm/amd/display: Pass up errors reading actual brightness
      drm/amd: add luminance property support
      drm/i915/display: add luminance property support
      drm/bridge: add connector luminance operations
      drm/panel: add connector luminance forwarding
      drm/bridge_connector: add luminance support
      drm/nouveau: add connector luminance support
      drm/gud: add connector luminance support
      drm/radeon: add connector luminance support
      drm/gma500: add connector luminance support
      drm/bridge: add PS8622 connector luminance support
      drm/solomon: add SSD130x connector luminance support

Mario Limonciello (AMD) (2):
      drm/amdgpu: Check bios_scratch_reg_offset in backlight level helper
      drm/amd/display: update KUnit luminance fixtures

 drivers/gpu/drm/Kconfig                            |  14 +++
 drivers/gpu/drm/amd/amdgpu/Kconfig                 |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c       |   7 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c     |  20 ++++
 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c     |  17 +++-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |  22 +++--
 .../amd/display/amdgpu_dm/amdgpu_dm_backlight.c    |  55 +++++++++--
 .../amd/display/amdgpu_dm/amdgpu_dm_backlight.h    |   4 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_connector.c    |   7 +-
 .../amdgpu_dm/tests/amdgpu_dm_backlight_test.c     |  47 +++++++--
 .../amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c      |   7 +-
 drivers/gpu/drm/bridge/Kconfig                     |   2 +-
 drivers/gpu/drm/bridge/parade-ps8622.c             |  45 ++++++---
 drivers/gpu/drm/display/drm_bridge_connector.c     |  48 +++++++++
 drivers/gpu/drm/drm_atomic_helper.c                |  73 +++++++++++++-
 drivers/gpu/drm/drm_atomic_state_helper.c          |   7 ++
 drivers/gpu/drm/drm_atomic_uapi.c                  |   5 +
 drivers/gpu/drm/drm_connector.c                    |  57 +++++++++++
 drivers/gpu/drm/drm_panel.c                        |  99 +++++++++++++++++--
 drivers/gpu/drm/gma500/Kconfig                     |   2 +-
 drivers/gpu/drm/gma500/backlight.c                 |  45 ++++++---
 drivers/gpu/drm/gma500/cdv_intel_lvds.c            |   2 +
 drivers/gpu/drm/gma500/psb_drv.c                   |   2 +-
 drivers/gpu/drm/gma500/psb_drv.h                   |   4 +-
 drivers/gpu/drm/gma500/psb_intel_lvds.c            |   3 +-
 drivers/gpu/drm/gud/Kconfig                        |   2 +-
 drivers/gpu/drm/gud/gud_connector.c                |  48 ++++++++-
 drivers/gpu/drm/i915/Kconfig                       |   2 +-
 drivers/gpu/drm/i915/display/icl_dsi.c             |   1 +
 drivers/gpu/drm/i915/display/intel_backlight.c     |  20 ++++
 drivers/gpu/drm/i915/display/intel_backlight.h     |   1 +
 drivers/gpu/drm/i915/display/intel_display.c       |   2 +
 drivers/gpu/drm/i915/display/intel_dp.c            |   1 +
 drivers/gpu/drm/i915/display/intel_lvds.c          |   1 +
 drivers/gpu/drm/i915/display/intel_panel.c         |   8 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c             |   1 +
 drivers/gpu/drm/nouveau/Kconfig                    |   4 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c            |   2 +-
 drivers/gpu/drm/nouveau/nouveau_backlight.c        | 110 +++++++++++++++++----
 drivers/gpu/drm/nouveau/nouveau_connector.c        |   2 +
 drivers/gpu/drm/nouveau/nouveau_connector.h        |  14 +++
 drivers/gpu/drm/radeon/Kconfig                     |   2 +-
 drivers/gpu/drm/radeon/atombios_encoders.c         |  32 +++++-
 drivers/gpu/drm/radeon/radeon_connectors.c         |  34 +++++++
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c    |  49 +++++++--
 drivers/gpu/drm/radeon/radeon_mode.h               |   2 +
 drivers/gpu/drm/solomon/Kconfig                    |   2 +-
 drivers/gpu/drm/solomon/ssd130x.c                  |  79 +++++++++++----
 drivers/gpu/drm/tests/drm_connector_test.c         |  28 ++++++
 drivers/gpu/drm/xe/Kconfig                         |   2 +-
 include/drm/drm_atomic_helper.h                    |   3 +
 include/drm/drm_bridge.h                           |  74 ++++++++++++++
 include/drm/drm_connector.h                        |  16 +++
 include/drm/drm_modeset_helper_vtables.h           |  25 +++++
 include/drm/drm_panel.h                            |  39 +-------
 55 files changed, 1030 insertions(+), 172 deletions(-)
---
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
change-id: 20261101-superm1-backlight-property-1ee9b1a4b24d

Best regards,
--  
Mario Limonciello <[email protected]>

Reply via email to