From 79420fd2deba83ee02425411bfe1ecf908bc29f5 Mon Sep 17 00:00:00 2001 From: David Rokhvarg 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 Signed-off-by: Harry Wentland Acked-by: Harry Wentland --- 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