diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4253-drm-amd-display-do-not-synchronize-drr-displays.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4253-drm-amd-display-do-not-synchronize-drr-displays.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4253-drm-amd-display-do-not-synchronize-drr-displays.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4253-drm-amd-display-do-not-synchronize-drr-displays.patch new file mode 100644 index 00000000..832f216f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4253-drm-amd-display-do-not-synchronize-drr-displays.patch @@ -0,0 +1,52 @@ +From 53020e71768ea377f2ab79c94ee7a45d6d6b7565 Mon Sep 17 00:00:00 2001 +From: Jun Lei <Jun.Lei@amd.com> +Date: Thu, 3 Oct 2019 15:09:53 -0400 +Subject: [PATCH 4253/4736] drm/amd/display: do not synchronize "drr" displays + +[why] +A display that supports DRR can never really be considered +"synchronized" with any other display because we can dynamically +enable DRR (i.e. without modeset). this will cause their +relative CRTC positions to drift and lose sync. this will disrupt +features such as MCLK switching that assume and depend on +their permanent alignment (that can only change with modeset) + +[how] +check for ignore_msa in stream when considered synchronizability +this ignore_msa is basically actually implemented as "supports drr" + +Signed-off-by: Jun Lei <Jun.Lei@amd.com> +Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com> +Acked-by: Anthony Koo <Anthony.Koo@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index 66a910ac3cbd..4154f1eedece 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -401,6 +401,9 @@ bool resource_are_streams_timing_synchronizable( + if (stream1->view_format != stream2->view_format) + return false; + ++ if (stream1->ignore_msa_timing_param || stream2->ignore_msa_timing_param) ++ return false; ++ + return true; + } + static bool is_dp_and_hdmi_sharable( +@@ -1537,6 +1540,9 @@ bool dc_is_stream_unchanged( + if (!are_stream_backends_same(old_stream, stream)) + return false; + ++ if (old_stream->ignore_msa_timing_param != stream->ignore_msa_timing_param) ++ return false; ++ + return true; + } + +-- +2.17.1 + |