diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1205-drm-amd-display-Check-that-vrefresh-is-in-freesync-r.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1205-drm-amd-display-Check-that-vrefresh-is-in-freesync-r.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1205-drm-amd-display-Check-that-vrefresh-is-in-freesync-r.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1205-drm-amd-display-Check-that-vrefresh-is-in-freesync-r.patch new file mode 100644 index 00000000..85cf08ba --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1205-drm-amd-display-Check-that-vrefresh-is-in-freesync-r.patch @@ -0,0 +1,56 @@ +From 7aae0e3774e0354cd1b096a95d73f739a9347d39 Mon Sep 17 00:00:00 2001 +From: Ilya Bakoulin <Ilya.Bakoulin@amd.com> +Date: Thu, 17 Jan 2019 13:40:34 -0500 +Subject: [PATCH 1205/2940] drm/amd/display: Check that vrefresh is in freesync + range + +[Why] +Setting monitor refresh rate below freesync range would cause the +monitor to go blank indefinitely with freesync enabled + +[How] +Set vrr_supported and ignore_msa_timing_param according to whether +the refresh rate is above or below the minimum freesync frequency. + +Change-Id: I7666040400448749d1fe4061da034825b9eb511f +Signed-off-by: Ilya Bakoulin <Ilya.Bakoulin@amd.com> +Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index e0e5453d9b69..f072a996faee 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -3132,9 +3132,6 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector, + + update_stream_signal(stream, sink); + +- if (dm_state && dm_state->freesync_capable) +- stream->ignore_msa_timing_param = true; +- + finish: + if (sink && sink->sink_signal == SIGNAL_TYPE_VIRTUAL && aconnector->base.force != DRM_FORCE_ON) + dc_sink_release(sink); +@@ -5482,9 +5479,13 @@ static void get_freesync_config_for_crtc( + struct amdgpu_dm_connector *aconnector = + to_amdgpu_dm_connector(new_con_state->base.connector); + +- new_crtc_state->vrr_supported = new_con_state->freesync_capable; ++ struct drm_display_mode *mode = &new_crtc_state->base.mode; ++ new_crtc_state->vrr_supported = new_con_state->freesync_capable && ++ aconnector->min_vfreq <= drm_mode_vrefresh(mode); ++ ++ if (new_crtc_state->vrr_supported) { ++ new_crtc_state->stream->ignore_msa_timing_param = true; + +- if (new_con_state->freesync_capable) { + config.state = new_crtc_state->base.vrr_enabled ? + VRR_STATE_ACTIVE_VARIABLE : + VRR_STATE_INACTIVE; +-- +2.17.1 + |