| From: |
| Mario Limonciello <mario.limonciello-AT-amd.com> |
| To: |
| <dri-devel-AT-lists.freedesktop.org>, <harry.wentland-AT-amd.com>, Simona Vetter <simona-AT-ffwll.ch>, Alex Deucher <alexander.deucher-AT-amd.com>, "Maarten Lankhorst" <maarten.lankhorst-AT-linux.intel.com>, Maxime Ripard <mripard-AT-kernel.org>, Thomas Zimmermann <tzimmermann-AT-suse.de>, David Airlie <airlied-AT-gmail.com> |
| Subject: |
| [PATCH v6 00/10] Add support for a DRM backlight capability |
| Date: |
| Wed, 24 Jun 2026 09:57:40 -0700 |
| Message-ID: |
| <20260624165751.2014759-1-mario.limonciello@amd.com> |
| Cc: |
| Xaver Hugl <xaver.hugl-AT-gmail.com>, <amd-gfx-AT-lists.freedesktop.org>, "open list:INTEL DRM DISPLAY FOR XE AND I915 DRIVERS" <intel-gfx-AT-lists.freedesktop.org>, "open list:INTEL DRM DISPLAY FOR XE AND I915 DRIVERS" <intel-xe-AT-lists.freedesktop.org>, Mario Limonciello <superm1-AT-kernel.org> |
| Archive-link: |
| Article |
From: Mario Limonciello (AMD) <superm1@kernel.org>
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.
The legacy sysfs interface is synchronized with the DRM connector.
When a compositor using this feature is loaded, sysfs writes are disabled
to prevent legacy tools from going out of sync with the compositor.
This has an implementation initially for amdgpu, i915, and Xe with eDP
connectors. It can be extended to other connectors like DP for displays
that can be controlled via DDC as well later.
The following compositors have implemented matching support:
* Kwin: https://invent.kde.org/plasma/kwin/-/merge_requests/9298
* Mutter: https://gitlab.gnome.org/swick/mutter/-/commits/wip/kms-l...
* Wlroots: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_re...
---
v5->v6:
* Rebase on drm-next
* Drop patch 7/11 (Move backlight tracing out of the dc lock)
Mario Limonciello (AMD) (10):
Revert "backlight: Remove notifier"
backlight: add kernel-internal backlight API
drm: link connectors to backlight devices
DRM: Add support for client indicating support for luminance
drm/amd/display: Pass up errors reading actual brightness
drm/amd/display: Allow backlight registration to fail
drm/amd/display: use drm backlight
drm/amd/display: Drop brightness caching in amdgpu_dm
drm/bridge: auto-link panel backlight in bridge connector
drm/i915/display: use drm backlight
drivers/gpu/drm/Kconfig | 1 +
drivers/gpu/drm/Makefile | 1 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 111 ++---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 13 -
drivers/gpu/drm/bridge/panel.c | 15 +
.../gpu/drm/display/drm_bridge_connector.c | 15 +-
drivers/gpu/drm/drm_atomic_helper.c | 7 +
drivers/gpu/drm/drm_atomic_uapi.c | 59 ++-
drivers/gpu/drm/drm_backlight.c | 445 ++++++++++++++++++
drivers/gpu/drm/drm_connector.c | 63 +++
drivers/gpu/drm/drm_drv.c | 8 +
drivers/gpu/drm/drm_file.c | 5 +
drivers/gpu/drm/drm_ioctl.c | 15 +
drivers/gpu/drm/drm_mode_config.c | 7 +
drivers/gpu/drm/drm_mode_object.c | 66 ++-
drivers/gpu/drm/drm_property.c | 6 +
drivers/gpu/drm/drm_sysfs.c | 28 +-
.../gpu/drm/i915/display/intel_backlight.c | 4 +
drivers/gpu/drm/i915/display/intel_dp.c | 8 +
drivers/video/backlight/backlight.c | 97 ++++
include/drm/drm_backlight.h | 51 ++
include/drm/drm_bridge.h | 1 +
include/drm/drm_connector.h | 8 +
include/drm/drm_file.h | 8 +
include/drm/drm_mode_config.h | 5 +
include/linux/backlight.h | 63 +++
include/uapi/drm/drm.h | 22 +
27 files changed, 1046 insertions(+), 86 deletions(-)
create mode 100644 drivers/gpu/drm/drm_backlight.c
create mode 100644 include/drm/drm_backlight.h
base-commit: 0e8233409d4f6def051dd42a432c6815bb780d78
--
2.43.0