aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch')
-rw-r--r--common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch b/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch
new file mode 100644
index 00000000..674c72dc
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch
@@ -0,0 +1,60 @@
+From 5e1f831ea1b826f9f20e566ec5ac820f5ef0f696 Mon Sep 17 00:00:00 2001
+From: Mykola Lysenko <Mykola.Lysenko@amd.com>
+Date: Tue, 24 Nov 2015 17:30:44 +0800
+Subject: [PATCH 0516/1110] drm/amd/dal: delay mst detection start till first
+ drm detect
+
+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 | 8 ++++----
+ drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 8 +++++++-
+ 2 files changed, 11 insertions(+), 5 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 beaef70..c3b6715 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
+@@ -331,8 +331,7 @@ bool dc_helpers_dp_mst_start_top_mgr(
+ struct drm_device *dev = adev->ddev;
+ struct amdgpu_connector *aconnector = get_connector_for_link(dev, link);
+
+- if (aconnector)
+- drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, true);
++ aconnector->is_mst_connector = true;
+
+ return true;
+ }
+@@ -345,6 +344,7 @@ void dc_helpers_dp_mst_stop_top_mgr(
+ struct drm_device *dev = adev->ddev;
+ struct amdgpu_connector *aconnector = get_connector_for_link(dev, link);
+
+- if (aconnector)
+- drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false);
++ drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false);
++
++ aconnector->is_mst_connector = false;
+ }
+diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
+index bfff48c..59a6a28 100644
+--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
+@@ -1002,8 +1002,14 @@ amdgpu_dm_connector_detect(struct drm_connector *connector, bool force)
+ * TODO: check whether we should lock here for mst_mgr.lock
+ */
+ /* set root connector to disconnected */
+- if (aconnector->mst_mgr.mst_state)
++ if (aconnector->is_mst_connector) {
++ if (!aconnector->mst_mgr.mst_state)
++ drm_dp_mst_topology_mgr_set_mst(
++ &aconnector->mst_mgr,
++ true);
++
+ return connector_status_disconnected;
++ }
+
+ connected = (NULL != aconnector->dc_sink);
+ return (connected ? connector_status_connected :
+--
+2.7.4
+