Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: Add preferred mode in modeset when freesync video mode's enabled.

[Why]
With kernel module parameter "freesync_video" is enabled, if the mode
is changed to preferred mode(the mode with highest rate), then Freesync
fails because the preferred mode is treated as one of freesync video
mode, and then be configurated as freesync video mode(fixed refresh
rate).

[How]
Skip freesync fixed rate configurating when modeset to preferred mode.

Signed-off-by: Solomon Chiu <solomon.chiu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

Solomon Chiu and committed by
Alex Deucher
46dd2965 5126da7d

+6 -1
+6 -1
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 9605 9605 } else if (amdgpu_freesync_vid_mode && aconnector && 9606 9606 is_freesync_video_mode(&new_crtc_state->mode, 9607 9607 aconnector)) { 9608 - set_freesync_fixed_config(dm_new_crtc_state); 9608 + struct drm_display_mode *high_mode; 9609 + 9610 + high_mode = get_highest_refresh_rate_mode(aconnector, false); 9611 + if (!drm_mode_equal(&new_crtc_state->mode, high_mode)) { 9612 + set_freesync_fixed_config(dm_new_crtc_state); 9613 + } 9609 9614 } 9610 9615 9611 9616 ret = dm_atomic_get_state(state, &dm_state);