Skip to content

Commit 5e19e2b

Browse files
superm1alexdeucher
authored andcommitted
drm/amd/display: Restore correct backlight brightness after a GPU reset
[Why] GPU reset will attempt to restore cached state, but brightness doesn't get restored. It will come back at 100% brightness, but userspace thinks it's the previous value. [How] When running resume sequence if GPU is in reset restore brightness to previous value. 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>
1 parent 0747acf commit 5e19e2b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
250250
static void handle_hpd_irq_helper(struct amdgpu_dm_connector *aconnector);
251251
static void handle_hpd_rx_irq(void *param);
252252

253+
static void amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm,
254+
int bl_idx,
255+
u32 user_brightness);
256+
253257
static bool
254258
is_timing_unchanged_for_freesync(struct drm_crtc_state *old_crtc_state,
255259
struct drm_crtc_state *new_crtc_state);
@@ -3432,6 +3436,12 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)
34323436

34333437
mutex_unlock(&dm->dc_lock);
34343438

3439+
/* set the backlight after a reset */
3440+
for (i = 0; i < dm->num_of_edps; i++) {
3441+
if (dm->backlight_dev[i])
3442+
amdgpu_dm_backlight_set_level(dm, i, dm->brightness[i]);
3443+
}
3444+
34353445
return 0;
34363446
}
34373447

0 commit comments

Comments
 (0)