aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1061-drm-amd-display-Only-get-the-connector-state-for-VRR.patch
diff options
context:
space:
mode:
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.patch53
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
+