aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch
new file mode 100644
index 00000000..1a329099
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1522-drm-amd-display-Poll-pending-DOWN_REP-before-enablin.patch
@@ -0,0 +1,79 @@
+From 2674706477fa5ecf09339ed3c8a1b027f3b9315e Mon Sep 17 00:00:00 2001
+From: Martin Tsai <martin.tsai@amd.com>
+Date: Mon, 11 Feb 2019 15:26:21 +0800
+Subject: [PATCH 1522/2940] drm/amd/display: Poll pending DOWN_REP before
+ enabling the link
+
+[Why]
+With special monitor combination on MST, the UP_REQ could come
+after clear payload table. It makes the pending DOWN_REP fail
+to be handled after link training and the new DOWN_REQ will be queued
+until time out .
+
+[How]
+To move the current polling pending DOWN_REP procedure to after
+clear payload table to make sure the pending DOWN_REP can be
+done before enabling the link.
+
+Change-Id: I4f81df255dbbde30baaa51b477c2510b3ff3fe66
+Signed-off-by: Martin Tsai <martin.tsai@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 8 ++++----
+ drivers/gpu/drm/amd/display/dc/dm_helpers.h | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+index cae16b6d2344..b4969e400ff8 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+@@ -264,7 +264,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
+ }
+
+ /*
+- * poll pending down reply before clear payload allocation table
++ * poll pending down reply
+ */
+ void dm_helpers_dp_mst_poll_pending_down_reply(
+ struct dc_context *ctx,
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+index c4b94effbeb3..ac399f74482e 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -1466,14 +1466,14 @@ static enum dc_status enable_link_dp_mst(
+ if (link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN)
+ return DC_OK;
+
++ /* clear payload table */
++ dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
++
+ /* to make sure the pending down rep can be processed
+- * before clear payload table
++ * before enabling the link
+ */
+ dm_helpers_dp_mst_poll_pending_down_reply(link->ctx, link);
+
+- /* clear payload table */
+- dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
+-
+ /* set the sink to MST mode before enabling the link */
+ dp_enable_mst_on_sink(link, true);
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dm_helpers.h b/drivers/gpu/drm/amd/display/dc/dm_helpers.h
+index e81b24374bcb..ccbfe9680d27 100644
+--- a/drivers/gpu/drm/amd/display/dc/dm_helpers.h
++++ b/drivers/gpu/drm/amd/display/dc/dm_helpers.h
+@@ -58,7 +58,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
+ bool enable);
+
+ /*
+- * poll pending down reply before clear payload allocation table
++ * poll pending down reply
+ */
+ void dm_helpers_dp_mst_poll_pending_down_reply(
+ struct dc_context *ctx,
+--
+2.17.1
+