aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch
new file mode 100644
index 00000000..8453eee0
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1647-drm-amd-display-Link-train-only-when-link-is-DP-and-.patch
@@ -0,0 +1,57 @@
+From 6a8949a069d58af0dd39de2ede344c005dee5622 Mon Sep 17 00:00:00 2001
+From: Samson Tam <Samson.Tam@amd.com>
+Date: Mon, 4 Mar 2019 16:21:06 -0500
+Subject: [PATCH 1647/2940] drm/amd/display: Link train only when link is DP
+ and backend is enabled
+
+[Why]
+In certain cases we do link training when we don't have a backend.
+
+[How]
+In dc_link_set_preferred_link_settings(), store preferred link settings
+first and then verify that the link is DP and the link stream's backend is
+enabled. If either is false, then we will not do any link retraining.
+
+Change-Id: I0af4250f00b5fb229d336294581d914584dbacbb
+Signed-off-by: Samson Tam <Samson.Tam@amd.com>
+Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
+Acked-by: Anthony Koo <Anthony.Koo@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index 5c3da56d0692..9a9cdb7f91a2 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -530,6 +530,14 @@ void dc_link_set_preferred_link_settings(struct dc *dc,
+ struct dc_stream_state *link_stream;
+ struct dc_link_settings store_settings = *link_setting;
+
++ link->preferred_link_setting = store_settings;
++
++ /* Retrain with preferred link settings only relevant for
++ * DP signal type
++ */
++ if (!dc_is_dp_signal(link->connector_signal))
++ return;
++
+ for (i = 0; i < MAX_PIPES; i++) {
+ pipe = &dc->current_state->res_ctx.pipe_ctx[i];
+ if (pipe->stream && pipe->stream->link) {
+@@ -544,7 +552,10 @@ void dc_link_set_preferred_link_settings(struct dc *dc,
+
+ link_stream = link->dc->current_state->res_ctx.pipe_ctx[i].stream;
+
+- link->preferred_link_setting = store_settings;
++ /* Cannot retrain link if backend is off */
++ if (link_stream->dpms_off)
++ return;
++
+ if (link_stream)
+ decide_link_settings(link_stream, &store_settings);
+
+--
+2.17.1
+