Hi Mathew,
We have a similar change has already been merged into asdn DC 3.2.400
release.
commit: drm/amd/display: map PWM brightness through custom
backlight curve
Could you give it a try? If you still see any other issues, please feel
free to send an updated patch.
Thanks!
On 9/17/2026 3:11 AM, Matthew Schwartz wrote:
amdgpu_dm already applies the ATIF custom brightness curve in
convert_custom_brightness() before handing the level to the power
module. The power module then builds its own percent to PWM LUT from
the same ATIF data in initialize_backlight_caps() and applies the curve
a second time. On the Lenovo Legion Go S this maps the bottom 40% of the
brightness range to under 12% PWM, where the panel no longer visibly
changes.
Tell the power module to use its linear curve so the PWM is a straight
rescale of the level DM computed, matching the behavior before the power
module took over backlight programming.
Fixes: 3c108046e1d6 ("drm/amd/display: Add power module on Linux")
Signed-off-by: Matthew Schwartz <[email protected]>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index ca795cda8084..63acefc0acfb 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -455,7 +455,7 @@ STATIC_IFN_KUNIT int amdgpu_dm_init_power_module(struct
amdgpu_display_manager *
!(amdgpu_dc_feature_mask &
DC_DISABLE_FRACTIONAL_PWM_MASK);
init_data[i].use_custom_backlight_caps = false;
init_data[i].custom_backlight_caps_config_no = 0;
- init_data[i].use_linear_backlight_curve = false;
+ init_data[i].use_linear_backlight_curve = true;
init_data[i].def_varibright_enable = 0;
init_data[i].varibright_level = 0;
/*