diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch new file mode 100644 index 00000000..0a27dbd3 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch @@ -0,0 +1,53 @@ +From cbff399ba3d42ef1cdc316da90ffc55b2dd1914e Mon Sep 17 00:00:00 2001 +From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Date: Thu, 10 Jan 2019 15:12:48 -0500 +Subject: [PATCH 1061/2940] drm/amd/display: Only get the connector state for + VRR when toggled + +[Why] +This fixes a stuttering issue that occurs when moving a hardware cursor +when VRR is enabled. + +Previously when VRR is enabled atomic check will grab the connector +state for every atomic update. This has to lock the connector in order +to do so. The locking is bad enough by itself for performance, but +it gets worse with what we do just below that - add all the planes +for the CRTC to the commit. + +This prevents the cursor fast path from working - there's more than one +plane now. With state->allow_modeset = true on top of this, it also +adds and removes all the planes from the DC context triggering a full +(very slow) update in DC. + +[How] +We need the connector state to get the VRR min/max capbilities, but we +only need them when there's a CRTC mode change or when VRR is toggled. + +The condition has been updated accordingly. + +Fixes: 3cc22f281318 ("drm/amdgpu: Set FreeSync state using drm VRR properties") + +Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Reviewed-by: Leo Li <sunpeng.li@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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 355939d3ab71..c588abe75dd7 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -6013,7 +6013,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, + + if (!drm_atomic_crtc_needs_modeset(new_crtc_state) && + !new_crtc_state->color_mgmt_changed && +- !new_crtc_state->vrr_enabled) ++ old_crtc_state->vrr_enabled == new_crtc_state->vrr_enabled) + continue; + + if (!new_crtc_state->enable) +-- +2.17.1 + |