aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch')
-rw-r--r--common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch b/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch
new file mode 100644
index 00000000..25068d12
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch
@@ -0,0 +1,42 @@
+From cd50910fc45ff921fa6d02303026231e92a98b36 Mon Sep 17 00:00:00 2001
+From: Mykola Lysenko <Mykola.Lysenko@amd.com>
+Date: Wed, 9 Dec 2015 20:09:07 +0800
+Subject: [PATCH 0597/1110] drm/amd/dal: remove mst sink from connector and
+ link
+
+When we detected that MST sink was disconnected, connector sink
+pointer should be cleaned-up and sink should be freed
+
+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_dm_mst_types.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+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 ca4a244..16c82a2 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
+@@ -68,7 +68,18 @@ dm_dp_mst_detect(struct drm_connector *connector, bool force)
+ struct amdgpu_connector *aconnector = to_amdgpu_connector(connector);
+ struct amdgpu_connector *master = aconnector->mst_port;
+
+- return drm_dp_mst_detect_port(connector, &master->mst_mgr, aconnector->port);
++ enum drm_connector_status status =
++ drm_dp_mst_detect_port(
++ connector,
++ &master->mst_mgr,
++ aconnector->port);
++
++ if (status == connector_status_disconnected && aconnector->dc_sink) {
++ dc_link_remove_sink(aconnector->dc_link, aconnector->dc_sink);
++ aconnector->dc_sink = NULL;
++ }
++
++ return status;
+ }
+
+ static void
+--
+2.7.4
+