Re: [PATCH RFC RFT 0/8] drm/amd/display: Stop rounding backlight levels to whole percents
From: Hugo Sales
Date: Fri Nov 13 2026 - 16:55:36 EST
On 11/11/2026 9:22 AM WET Ray Wu <ray.wu@xxxxxxx> wrote:
> Patches 2/8 and 3/8 (LUT interpolation in the power module) are still
> useful on top of it, and I have already given my Reviewed-by on those.
>
> Could you test it on your machine?
Hi Ray,
Thanks, and sorry for the delay. I tested your four patches with 2/8 and
3/8 on top, on an ASUS ROG Flow X13 GV301QH, a Cezanne laptop with a PWM
backlight. I have no AUX panel, so this only covers the PWM path
With ABM off, I wrote these levels to brightness and read
actual_brightness back:
level actual PWM
1 1 0x0004
500 500 0x055d
1000 1000 0x0ab9
2000 1999 0x0f1c
32768 32769 0x6263
65534 65534 0xfffd
>From 0 to 3000 in steps of 50, the 61 levels got 61 different PWM
values. Across the whole range, in steps of 1024, the PWM never went
down. With your patches alone, 1 to 655 read back as 0, 1000 as 655 and
65534 as 64880
v1's 4/8 still matters for released kernels. Since commit 3c108046e1d6
("drm/amd/display: Add power module on Linux") in 7.2, amdgpu_dm hands
the power module whole percents, so PWM panels get at most 101 levels.
Before it, amdgpu_dm passed a 16-bit PWM value straight to
dc_link_set_backlight_level(). Your series alone still rounds to whole
percents too, in the power module's LUT, so the rounding needs fixing
either way.
Which would you prefer:
- I send a v2 now that fixes it on the current tree: 4/8 with a Fixes
tag, plus 2/8, 3/8 and their tests, on top of "drm/amd/display: Fix
the doubled AUX backlight minimum on the custom curve" [1]. Your
series then replaces the amdgpu_dm part
- I wait for your series and fix it on top of that. Your series already
removes the rounding in amdgpu_dm, so that only needs 2/8 and 3/8
Thanks,
Hugo
[1] https://lore.kernel.org/r/20261103-amdgpu-aux-curve-min-v1-0-62119efdcc6d@xxxxxxx