aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch')
-rw-r--r--common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch121
1 files changed, 0 insertions, 121 deletions
diff --git a/common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch b/common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch
deleted file mode 100644
index 9bc612df..00000000
--- a/common/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 6d4d095d35d911aaa0387649958a8d1feb3ce2c8 Mon Sep 17 00:00:00 2001
-From: Harry Wentland <harry.wentland@amd.com>
-Date: Fri, 27 Nov 2015 00:04:11 -0500
-Subject: [PATCH 0533/1110] drm/amd/dal: Don't retrain the link when enabling
- 2nd stream
-
-For MST we don't want to retrain the link when enabling
-the 2nd stream. This avoids that but also introduces a hole
-in the logic in that we don't disable the link after the
-last stream is cleaned up. This logic needs to be cleaned up
-further.
-
-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 | 14 +++++++++++---
- drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c | 18 +++++++++++++-----
- drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 3 ++-
- drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h | 2 +-
- 4 files changed, 27 insertions(+), 10 deletions(-)
-
-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 0e97180..3484db5 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c
-@@ -919,10 +919,18 @@ static enum dc_status enable_link_dp(struct core_stream *stream)
- static enum dc_status enable_link_dp_mst(struct core_stream *stream)
- {
- struct core_link *link = stream->sink->link;
-+ bool already_enabled = false;
-+ int i;
-+
-+
-+ for (i = 0; i < link->enabled_stream_count; i++) {
-+ if (link->enabled_streams[i] == stream)
-+ already_enabled = true;
-+ }
-
- /* TODO MST link shared by stream. counter? */
-- if (link->stream_count < 4)
-- link->stream_count++;
-+ if (!already_enabled)
-+ link->enabled_streams[link->enabled_stream_count++] = stream;
-
- /* sink signal type after MST branch is MST. Multiple MST sinks
- * share one link. Link DP PHY is enable or training only once.
-@@ -1045,7 +1053,7 @@ enum dc_status core_link_disable(struct core_stream *stream)
- stream->sink->link, stream->signal);
- else {
- dp_disable_link_phy_mst(
-- stream->sink->link, stream->signal);
-+ stream->sink->link, stream);
- }
- }
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c
-index 3d6e2ea..551a98f 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c
-@@ -83,18 +83,26 @@ void dp_disable_link_phy(struct core_link *link, enum signal_type signal)
- sizeof(link->cur_link_settings));
- }
-
--void dp_disable_link_phy_mst(struct core_link *link, enum signal_type signal)
-+void dp_disable_link_phy_mst(struct core_link *link, struct core_stream *stream)
- {
-+ int i, j;
-+
-+ for (i = 0; i < link->enabled_stream_count; i++) {
-+ if (link->enabled_streams[i] == stream) {
-+ link->enabled_stream_count--;
-+ for (j = i; i < link->enabled_stream_count; j++)
-+ link->enabled_streams[j] = link->enabled_streams[j+1];
-+ }
-+ }
- /* MST disable link only when no stream use the link */
-- if (link->stream_count > 0)
-- link->stream_count--;
-- if (link->stream_count > 0)
-+ if (link->enabled_stream_count > 0) {
- return;
-+ }
-
- if (!link->dp_wa.bits.KEEP_RECEIVER_POWERED)
- dp_receiver_power_ctrl(link, false);
-
-- link->dc->hwss.encoder_disable_output(link->link_enc, signal);
-+ link->dc->hwss.encoder_disable_output(link->link_enc, stream->signal);
-
- /* Clear current link setting.*/
- dc_service_memset(&link->cur_link_settings, 0,
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-index 0b06314..f18034c 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-@@ -227,7 +227,8 @@ struct core_link {
- union dp_wa dp_wa;
-
- /* MST record stream using this link */
-- uint8_t stream_count;
-+ const struct core_stream *enabled_streams[MAX_SINKS_PER_LINK];
-+ uint8_t enabled_stream_count;
- };
-
- #define DC_LINK_TO_LINK(dc_link) container_of(dc_link, struct core_link, public)
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h b/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h
-index a008544..c86c942 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h
-@@ -50,7 +50,7 @@ void dp_receiver_power_ctrl(struct core_link *link, bool on);
-
- void dp_disable_link_phy(struct core_link *link, enum signal_type signal);
-
--void dp_disable_link_phy_mst(struct core_link *link, enum signal_type signal);
-+void dp_disable_link_phy_mst(struct core_link *link, struct core_stream *stream);
-
- bool dp_set_hw_training_pattern(
- struct core_link *link,
---
-2.7.4
-