On Sat, Apr 25, 2026 at 12:10 AM Mario Limonciello
<[email protected]> wrote:
>
> From: Mario Limonciello (AMD) <[email protected]>
>
> At Display Next Hackfest 2025 we discussed the renewed need for moving
> brightness control into the DRM connector properties.  I've taken the
> previous efforts from David and Marta, rebased and adjusted for the
> current kernel.

Thanks a lot for this!

I've wired it up for mutter but I don't have a machine with AMD
graphics and an internal panel, so I can't really test it.

https://gitlab.gnome.org/swick/mutter/-/commits/wip/kms-luminance-prop

I've also noticed a few things while doing so:

1. There isn't a bit of information which tells user space if the
property is actually backed by anything
2. A fixed range from 0 to uint16_t max might be problematic for
backlights with very few steps

Could maybe fix both of those issues by making the range dynamic to
the actual numbers of steps, where zero means that there isn't any
backing backlight device.

> The legacy sysfs interface is synchronized with the DRM connector (although
> the scale may be different as DRM connector property is u16).
>
> Later after this has been adopted by enough userspace, it may make sense to
> configure the legacy sysfs interface to be configurable so that only
> DRM master controls backlight.
>
> I've done a first implementation with amdgpu with eDP connectors; but
> conceivably this can be extended to other connectors like DP for displays
> that can be controlled via DDC as well later.
>
> I have also used DRM review prompts to review this series and fix some bugs
> which were caught with two different Claude models.  The fixes are squashed
> into the patches.
>
> Assisted-by: Claude Opus
> Assisted-by: Claude Sonnet
>
> For ease of testing; this series is also available on this branch:
> https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git/log/?h=superm1/backlight-property-v3
>
> David Rheinsberg (1):
>   backlight: add kernel-internal backlight API
>
> Mario Limonciello (6):
>   drm: link connectors to backlight devices
>   DRM: Add support for client and driver indicating support for
>     luminance
>   drm/amd/display: Pass up errors reading actual brightness
>   drm/amd: Indicate driver supports luminance
>   drm/amd/display: Allow backlight registration to fail
>   drm/amd/display: use drm backlight
>
> Marta Lofstedt (1):
>   backlight: expose the current brightness in the new kernel API
>
>  drivers/gpu/drm/Kconfig                       |   1 +
>  drivers/gpu/drm/Makefile                      |   2 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c       |   1 +
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  88 +++-
>  drivers/gpu/drm/drm_atomic_uapi.c             |  24 ++
>  drivers/gpu/drm/drm_backlight.c               | 406 ++++++++++++++++++
>  drivers/gpu/drm/drm_connector.c               |  12 +
>  drivers/gpu/drm/drm_drv.c                     |   8 +
>  drivers/gpu/drm/drm_ioctl.c                   |  10 +
>  drivers/gpu/drm/drm_mode_config.c             |   7 +
>  drivers/gpu/drm/drm_mode_object.c             |  66 ++-
>  drivers/gpu/drm/drm_sysfs.c                   |  54 +++
>  drivers/video/backlight/backlight.c           |  83 ++++
>  include/drm/drm_backlight.h                   |  45 ++
>  include/drm/drm_connector.h                   |   8 +
>  include/drm/drm_drv.h                         |   7 +
>  include/drm/drm_file.h                        |   8 +
>  include/drm/drm_mode_config.h                 |   5 +
>  include/linux/backlight.h                     |  30 ++
>  include/uapi/drm/drm.h                        |  10 +
>  20 files changed, 852 insertions(+), 23 deletions(-)
>  create mode 100644 drivers/gpu/drm/drm_backlight.c
>  create mode 100644 include/drm/drm_backlight.h
>
> --
> 2.53.0
>

Reply via email to