aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch')
-rw-r--r--common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch159
1 files changed, 0 insertions, 159 deletions
diff --git a/common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch b/common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch
deleted file mode 100644
index b38985ee..00000000
--- a/common/recipes-kernel/linux/files/0652-drm-amd-dal-Start-Stop-MST-Topology-only-for-root-co.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 05f91cf29df67de0c2d8895b1cd0099f17febc0a Mon Sep 17 00:00:00 2001
-From: David Rokhvarg <David.Rokhvarg@amd.com>
-Date: Tue, 29 Dec 2015 14:40:40 -0500
-Subject: [PATCH 0652/1110] drm/amd/dal: Start/Stop MST Topology only for
- 'root' connector.
-
-drm_dp_mst_topology_mgr_set_mst() should be called only for the
-phisycal 'aconnector' - to start/stop MST Topology Manager in it.
-The dynamically-created 'aconnectors' are handled by DRM MST and
-we should not start/stop anything in them.
-
-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>
----
- .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c | 38 ++++++----------------
- drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 11 +++----
- .../drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c | 7 +++-
- 3 files changed, 21 insertions(+), 35 deletions(-)
-
-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 e856f0c..95a129e 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
-@@ -471,30 +471,6 @@ void dc_helpers_dp_mst_handle_mst_hpd_rx_irq(void *param)
- }
- }
-
--/* Depending on Root connector state, update MST state of all connectors
-- * belonging to it. */
--static void set_mst_topology_state(struct drm_device *dev)
--{
-- struct drm_connector *connector;
-- struct amdgpu_connector *aconnector = NULL;
--
-- mutex_lock(&dev->mode_config.mutex);
--
-- list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
-- mutex_unlock(&dev->mode_config.mutex);
--
-- aconnector = to_amdgpu_connector(connector);
--
-- if (aconnector->is_mst_connector)
-- drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr,
-- aconnector->is_mst_connector);
--
-- mutex_lock(&dev->mode_config.mutex);
-- }
--
-- mutex_unlock(&dev->mode_config.mutex);
--}
--
- bool dc_helpers_dp_mst_start_top_mgr(
- struct dc_context *ctx,
- const struct dc_link *link)
-@@ -503,8 +479,11 @@ bool dc_helpers_dp_mst_start_top_mgr(
- struct drm_device *dev = adev->ddev;
- struct amdgpu_connector *aconnector = get_connector_for_link(dev, link);
-
-- aconnector->is_mst_connector = true;
-- set_mst_topology_state(dev);
-+ DRM_INFO("DM_MST: starting TM on aconnector: %p [id: %d]\n",
-+ aconnector, aconnector->base.base.id);
-+
-+ drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, true);
-+
- return true;
- }
-
-@@ -516,8 +495,11 @@ void dc_helpers_dp_mst_stop_top_mgr(
- struct drm_device *dev = adev->ddev;
- struct amdgpu_connector *aconnector = get_connector_for_link(dev, link);
-
-- aconnector->is_mst_connector = false;
-- set_mst_topology_state(dev);
-+ DRM_INFO("DM_MST: stopping TM on aconnector: %p [id: %d]\n",
-+ aconnector, aconnector->base.base.id);
-+
-+ if (aconnector->mst_mgr.mst_state == true)
-+ drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false);
- }
-
- bool dc_helper_dp_read_dpcd(
-diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
-index 62df355..d472a17 100644
---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
-@@ -734,12 +734,11 @@ void amdgpu_dm_update_connector_after_detect(
- const struct dc_sink *sink;
-
- /* MST handled by drm_mst framework */
-- if (aconnector->is_mst_connector)
-+ if (aconnector->mst_mgr.mst_state == true)
- return;
-
-- if (!dm_get_sink_from_link(dc_link, aconnector, &sink)) {
-+ if (!dm_get_sink_from_link(dc_link, aconnector, &sink))
- return;
-- }
-
- /*
- * TODO: temporary guard to look for proper fix
-@@ -801,18 +800,18 @@ static void handle_hpd_rx_irq(void *param)
- struct amdgpu_connector *aconnector = (struct amdgpu_connector *)param;
- struct drm_connector *connector = &aconnector->base;
- struct drm_device *dev = connector->dev;
-+ bool is_mst_root_connector = aconnector->mst_mgr.mst_state;
-
- if (dc_link_handle_hpd_rx_irq(aconnector->dc_link) &&
-- !aconnector->is_mst_connector) {
-+ !is_mst_root_connector) {
- /* Downstream Port status changed. */
- dc_link_detect(aconnector->dc_link);
- amdgpu_dm_update_connector_after_detect(aconnector);
- drm_kms_helper_hotplug_event(dev);
- }
-
-- if (aconnector->is_mst_connector) {
-+ if (is_mst_root_connector)
- dc_helpers_dp_mst_handle_mst_hpd_rx_irq(param);
-- }
- }
-
- static void register_hpd_handlers(struct amdgpu_device *adev)
-diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
-index d47ec32..f976409 100644
---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
-+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
-@@ -274,7 +274,6 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_
- if (!aconnector)
- return NULL;
-
-- aconnector->is_mst_connector = true;
- connector = &aconnector->base;
- aconnector->port = port;
- aconnector->mst_port = master;
-@@ -318,6 +317,9 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_
- */
- amdgpu_dm_connector_funcs_reset(connector);
-
-+ DRM_INFO("DM_MST: added connector: %p [id: %d] [master: %p]\n",
-+ aconnector, connector->base.id, aconnector->mst_port);
-+
- DRM_DEBUG_KMS(":%d\n", connector->base.id);
-
- return connector;
-@@ -333,6 +335,9 @@ static void dm_dp_destroy_mst_connector(
- struct drm_device *dev = master->base.dev;
- struct amdgpu_device *adev = dev->dev_private;
-
-+ DRM_INFO("DM_MST: destroying connector: %p [id: %d] [master: %p]\n",
-+ aconnector, connector->base.id, aconnector->mst_port);
-+
- drm_connector_unregister(connector);
- /* need to nuke the connector */
- drm_modeset_lock_all(dev);
---
-2.7.4
-