summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2023-07-20 08:42:21 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2023-07-20 08:42:21 +0000
commit88384305301225d09386973b9fbc846dfa67289e (patch)
tree61269f3b4933bb6453b007a8b4de96eb9554e26b
parentff89b2912b25ff00ede00b0b2915f48bc9cf488b (diff)
drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode
From Aurabindo Pillai c1164aeb9691817d23c8e8ed886c91ea1bdca76e in linux-6.1.y/6.1.39 b18f05a0666aecd5cb19c26a8305bcfa4e9d6502 in mainline linux
-rw-r--r--sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 9f59a07112a..21e07a101aa 100644
--- a/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8877,6 +8877,8 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
/* Now check if we should set freesync video mode */
if (amdgpu_freesync_vid_mode && dm_new_crtc_state->stream &&
+ dc_is_stream_unchanged(new_stream, dm_old_crtc_state->stream) &&
+ dc_is_stream_scaling_unchanged(new_stream, dm_old_crtc_state->stream) &&
is_timing_unchanged_for_freesync(new_crtc_state,
old_crtc_state)) {
new_crtc_state->mode_changed = false;