aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch
new file mode 100644
index 00000000..ce143eec
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3595-drm-amd-display-revert-wait-in-pipelock.patch
@@ -0,0 +1,47 @@
+From 4aff55de536255961069b1589637fed28f6dafed Mon Sep 17 00:00:00 2001
+From: Jun Lei <Jun.Lei@amd.com>
+Date: Tue, 23 Jul 2019 16:56:03 -0400
+Subject: [PATCH 3595/4256] drm/amd/display: revert wait in pipelock
+
+[why]
+Previous workaround to prevent a vsync flip to be converted
+to immediate flip is no longer needed, and is risky because
+there are cases where it can result in infinite loop.
+
+[how]
+Remove wait loop (which is potentially infinite) before locking
+pipe
+
+Signed-off-by: Jun Lei <Jun.Lei@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Reviewed-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+index adad15eb5d12..7f9e48566527 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+@@ -1103,17 +1103,6 @@ void dcn20_pipe_control_lock(
+ if (pipe->plane_state != NULL)
+ flip_immediate = pipe->plane_state->flip_immediate;
+
+- if (flip_immediate && lock) {
+- while (pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->plane_res.hubp)) {
+- udelay(1);
+- }
+-
+- if (pipe->bottom_pipe != NULL)
+- while (pipe->bottom_pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->bottom_pipe->plane_res.hubp)) {
+- udelay(1);
+- }
+- }
+-
+ /* In flip immediate and pipe splitting case, we need to use GSL
+ * for synchronization. Only do setup on locking and on flip type change.
+ */
+--
+2.17.1
+