[REGRESSION] drm/amd/display: backlight brightness set to 0 at amdgpu initialization

Mario Limonciello superm1 at kernel.org
Sat Jul 19 15:25:27 UTC 2025



On 7/18/25 9:12 PM, Lauri Tirkkonen wrote:
> On Fri, Jul 18 2025 20:14:08 -0500, Mario Limonciello wrote:
>> OK, I think we need to do two things to figure out what's going on.
>>
>> 1) Let's shift over to 6.16-rc6.  Once we've got a handle on the situation
>> there we can iron out if there are other patches missing or this is also
>> broken for you in 6.16.  If it's not working as expected there either we
>> need it fixed there first anyway.
> 
> Same behavior on 6.16-rc6: brightness is set to 0 (max 399000),
> minimally visible.
> 
>> 2) The starting brightness I don't expect to be "0".  We need to see what
>> values were read out from the firmware. There is a debugging message we can
>> catch if you boot with drm.debug=0x106.  Keep in mind you probably need to
>> increase log_buf_len if your ring buffer is set too small too.
>>
>> https://github.com/torvalds/linux/commit/4b61b8a390511a1864f26cc42bab72881e93468d
>>
>> PS: I would rather you add logs into a gist, pastebin or a bug somewhere if
>> you can.
> 
> [    3.210757] amdgpu 0000:03:00.0: [drm:amdgpu_dm_connector_late_register [amdgpu]] Backlight caps: min: 1000, max: 400000, ac 100, dc 32
> 
> full dmesg: https://termbin.com/o2q3
> 

Thanks for sharing.  Can you get me an updated output with 
drm.debug=0x106 set and with this applied?  I want to see what values 
were set.

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 5df7f8c34231..cdc43cfb39dd 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -10489,8 +10489,12 @@ static void amdgpu_dm_atomic_commit_tail(struct 
drm_atomic_state *state)
         /* restore the backlight level */
         for (i = 0; i < dm->num_of_edps; i++) {
                 if (dm->backlight_dev[i] &&
-                   (dm->actual_brightness[i] != dm->brightness[i]))
+                   (dm->actual_brightness[i] != dm->brightness[i])) {
+                       drm_WARN(adev_to_drm(adev), true,
+                                       "Backlight level %d does not 
match actual brightness %d for edp %d\n",
+                                       dm->brightness[i], 
dm->actual_brightness[i], i);
                         amdgpu_dm_backlight_set_level(dm, i, 
dm->brightness[i]);
+                   }
         }

         /*

Also, does turning off custom brightness curves 
(amdgpu.dcdebugmask=0x40000) help?



More information about the amd-gfx mailing list