aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch')
-rw-r--r--common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch103
1 files changed, 0 insertions, 103 deletions
diff --git a/common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch b/common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch
deleted file mode 100644
index 25edd9e4..00000000
--- a/common/recipes-kernel/linux/files/0670-drm-amd-dal-Reuse-MST-connectors-to-resolve-headless.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 482cbc6b1bcc9f633ec2cde2ef7f968c10d96500 Mon Sep 17 00:00:00 2001
-From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Date: Tue, 5 Jan 2016 19:59:00 -0500
-Subject: [PATCH 0670/1110] drm/amd/dal: Reuse MST connectors to resolve
- headless issues
-
-Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Acked-by: Jordan Lazare <Jordan.Lazare@amd.com>
----
- .../drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c | 57 +++++++++++++---------
- 1 file changed, 34 insertions(+), 23 deletions(-)
-
-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 e7b675e..1d1cd48 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
-@@ -270,6 +270,24 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_
- struct amdgpu_connector *aconnector;
- struct drm_connector *connector;
-
-+ drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
-+ drm_for_each_connector(connector, dev) {
-+ aconnector = to_amdgpu_connector(connector);
-+ if (aconnector->mst_port == master
-+ && !aconnector->port) {
-+ DRM_INFO("DM_MST: reusing connector: %p [id: %d] [master: %p]\n",
-+ aconnector, connector->base.id, aconnector->mst_port);
-+
-+ aconnector->port = port;
-+ drm_mode_connector_set_path_property(connector, pathprop);
-+
-+ drm_modeset_unlock(&dev->mode_config.connection_mutex);
-+ return &aconnector->base;
-+ }
-+ }
-+ drm_modeset_unlock(&dev->mode_config.connection_mutex);
-+
-+
- aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
- if (!aconnector)
- return NULL;
-@@ -329,31 +347,13 @@ static void dm_dp_destroy_mst_connector(
- struct drm_dp_mst_topology_mgr *mgr,
- struct drm_connector *connector)
- {
-- struct amdgpu_connector *master =
-- container_of(mgr, struct amdgpu_connector, mst_mgr);
- struct amdgpu_connector *aconnector = to_amdgpu_connector(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);
-- /* dpms off */
-- drm_fb_helper_remove_one_connector(
-- &adev->mode_info.rfbdev->helper,
-- connector);
--
-- drm_connector_cleanup(connector);
-- drm_modeset_unlock_all(dev);
-+ DRM_INFO("DM_MST: Disabling connector: %p [id: %d] [master: %p]\n",
-+ aconnector, connector->base.id, aconnector->mst_port);
-
-- if (aconnector->dc_sink)
-- dc_link_remove_sink(aconnector->dc_link, aconnector->dc_sink);
--
-- kfree(aconnector);
-- DRM_DEBUG_KMS("\n");
-+ aconnector->port = NULL;
-+ aconnector->edid = NULL;
- }
-
- static void dm_dp_mst_hotplug(struct drm_dp_mst_topology_mgr *mgr)
-@@ -369,10 +369,21 @@ static void dm_dp_mst_register_connector(struct drm_connector *connector)
- {
- struct drm_device *dev = connector->dev;
- struct amdgpu_device *adev = dev->dev_private;
-+ int i;
-
- drm_modeset_lock_all(dev);
-- if (adev->mode_info.rfbdev)
-+ if (adev->mode_info.rfbdev) {
-+ /*Do not add if already registered in past*/
-+ for (i = 0; i < adev->mode_info.rfbdev->helper.connector_count; i++) {
-+ if (adev->mode_info.rfbdev->helper.connector_info[i]->connector
-+ == connector) {
-+ drm_modeset_unlock_all(dev);
-+ return;
-+ }
-+ }
-+
- drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
-+ }
- else
- DRM_ERROR("adev->mode_info.rfbdev is NULL\n");
-
---
-2.7.4
-