diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/0533-drm-amd-dal-Don-t-retrain-the-link-when-enabling-2nd.patch b/meta-amdfalconx86/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/meta-amdfalconx86/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 - |