aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch')
-rw-r--r--common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch b/common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch
new file mode 100644
index 00000000..c7a246fa
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0653-drm-amd-dal-Skip-unrelated-MST-connectors-in-payload.patch
@@ -0,0 +1,53 @@
+From 79420fd2deba83ee02425411bfe1ecf908bc29f5 Mon Sep 17 00:00:00 2001
+From: David Rokhvarg <David.Rokhvarg@amd.com>
+Date: Wed, 30 Dec 2015 11:14:42 -0500
+Subject: [PATCH 0653/1110] drm/amd/dal: Skip unrelated MST connectors in
+ payload allocation.
+
+Skip MST connectors belonging to other 'root' connectors during payload allocation.
+This fixes multi-MST configuration light-up.
+
+Signed-off-by: David Rokhvarg <David.Rokhvarg@amd.com>
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+---
+ drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c
+index 95a129e..744ab94 100644
+--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c
++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c
+@@ -177,6 +177,7 @@ bool dc_helpers_dp_mst_write_payload_allocation_table(
+ struct drm_crtc *crtc;
+ struct drm_dp_mst_topology_mgr *mst_mgr;
+ struct drm_dp_mst_port *mst_port;
++ struct amdgpu_connector *master_port;
+ int slots = 0;
+ bool ret;
+ int clock;
+@@ -191,7 +192,8 @@ bool dc_helpers_dp_mst_write_payload_allocation_table(
+ if (!aconnector->mst_port)
+ return false;
+
+- mst_mgr = &aconnector->mst_port->mst_mgr;
++ master_port = aconnector->mst_port;
++ mst_mgr = &master_port->mst_mgr;
+
+ if (!mst_mgr->mst_state)
+ return false;
+@@ -300,6 +302,11 @@ bool dc_helpers_dp_mst_write_payload_allocation_table(
+ if (!aconnector->mst_port)
+ continue;
+
++ if (master_port != aconnector->mst_port) {
++ /* Not the same physical connector. */
++ continue;
++ }
++
+ mst_port = aconnector->port;
+
+ if (mst_port->vcpi.vcpi !=
+--
+2.7.4
+