]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amd/display: fix default brightness
authorMario Limonciello <mario.limonciello@amd.com>
Sun, 23 Feb 2025 05:37:32 +0000 (23:37 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 10 Mar 2025 18:11:13 +0000 (14:11 -0400)
[Why]
To avoid flickering during boot default brightness level set by BIOS
should be maintained for as much of the boot as feasible.
commit 2fe87f54abdc ("drm/amd/display: Set default brightness according
to ACPI") attempted to set the right levels for AC vs DC, but brightness
still got reset to maximum level in initialization code for
setup_backlight_device().

[How]
Remove the hardcoded initialization in setup_backlight_device() and
instead program brightness value to match BIOS (AC or DC).  This avoids a
brightness flicker from kernel changing the value.  Userspace may however
still change it during boot.

Fixes: 2fe87f54abdc ("drm/amd/display: Set default brightness according to ACPI")
Acked-by: Wayne Lin <Wayne.Lin@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Tom Chung <chiahsuan.chung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0747acf3311229e22009bec4a9e7fc30c879e842)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index f4fed93f2915a69f1d53e2f5575bf33e3e67c302..4bd7f82c582dcce915af6241dced58fcaa1fd68e 100644 (file)
@@ -4911,6 +4911,7 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector)
        dm->backlight_dev[aconnector->bl_idx] =
                backlight_device_register(bl_name, aconnector->base.kdev, dm,
                                          &amdgpu_dm_backlight_ops, &props);
+       dm->brightness[aconnector->bl_idx] = props.brightness;
 
        if (IS_ERR(dm->backlight_dev[aconnector->bl_idx])) {
                DRM_ERROR("DM: Backlight registration failed!\n");
@@ -4978,7 +4979,6 @@ static void setup_backlight_device(struct amdgpu_display_manager *dm,
        aconnector->bl_idx = bl_idx;
 
        amdgpu_dm_update_backlight_caps(dm, bl_idx);
-       dm->brightness[bl_idx] = AMDGPU_MAX_BL_LEVEL;
        dm->backlight_link[bl_idx] = link;
        dm->num_of_edps++;