Skip to content

Commit 4b06955

Browse files
Aurabindo Pillaialexdeucher
authored andcommitted
drm/amd/display: Fix timing not changning when freesync video is enabled
[Why&How] Switching between certain modes that are freesync video modes and those are not freesync video modes result in timing not changing as seen by the monitor due to incorrect timing being driven. The issue is fixed by ensuring that when a non freesync video mode is set, we reset the freesync status on the crtc. Reviewed-by: Nicholas Kazlauskas <[email protected]> Acked-by: Alan Liu <[email protected]> Signed-off-by: Aurabindo Pillai <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent d8bf2df commit 4b06955

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8881,6 +8881,13 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
88818881
if (!dm_old_crtc_state->stream)
88828882
goto skip_modeset;
88838883

8884+
/* Unset freesync video if it was active before */
8885+
if (dm_old_crtc_state->freesync_config.state == VRR_STATE_ACTIVE_FIXED) {
8886+
dm_new_crtc_state->freesync_config.state = VRR_STATE_INACTIVE;
8887+
dm_new_crtc_state->freesync_config.fixed_refresh_in_uhz = 0;
8888+
}
8889+
8890+
/* Now check if we should set freesync video mode */
88848891
if (amdgpu_freesync_vid_mode && dm_new_crtc_state->stream &&
88858892
is_timing_unchanged_for_freesync(new_crtc_state,
88868893
old_crtc_state)) {

0 commit comments

Comments
 (0)