aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch')
-rw-r--r--common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch b/common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch
new file mode 100644
index 00000000..db0bf660
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0595-drm-amd-dal-do-not-remove-MST-sinks-in-DC.patch
@@ -0,0 +1,50 @@
+From d906352dfc34ffcd1459b21b6f1f2de61c5ac85d Mon Sep 17 00:00:00 2001
+From: Mykola Lysenko <Mykola.Lysenko@amd.com>
+Date: Wed, 9 Dec 2015 19:57:21 +0800
+Subject: [PATCH 0595/1110] drm/amd/dal: do not remove MST sinks in DC
+
+They will be removed by appropriate code in DM, as
+they were created in DM
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Acked-by: Harry Wentland<harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c
+index fe36786..2f2800f 100644
+--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c
+@@ -639,11 +639,27 @@ void dc_link_detect(const struct dc_link *dc_link)
+ switch (link->public.connector_signal) {
+ case SIGNAL_TYPE_DISPLAY_PORT:
+ dc_helpers_dp_mst_stop_top_mgr(link->ctx, &link->public);
++ /*
++ * in this case sinks would be removed in outer level
++ */
++
++ /*
++ * TODO: this is the only way to understand that link
++ * was in mst mode. Proposal for future to add
++ * additional field to link that will show actual state.
++ *
++ * For the change: for mst we create sink outside, and
++ * should remove them in the same place
++ */
++ if (link->public.sink_count == 1 &&
++ link->public.sink[0]->sink_signal !=
++ SIGNAL_TYPE_DISPLAY_PORT_MST)
++ link_disconnect_all_sinks(link);
+ break;
+ default:
++ link_disconnect_all_sinks(link);
+ break;
+ }
+- link_disconnect_all_sinks(link);
+ }
+
+ LINK_INFO("link=%d, dc_sink_in=%p is now %s\n",
+--
+2.7.4
+