aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch
new file mode 100644
index 00000000..c8aec992
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4258-drm-amd-display-take-signal-type-from-link.patch
@@ -0,0 +1,56 @@
+From 2d6d7bd8a7b1cbbb60f5a4233e389ee45d278973 Mon Sep 17 00:00:00 2001
+From: Lewis Huang <Lewis.Huang@amd.com>
+Date: Thu, 3 Oct 2019 16:01:25 +0800
+Subject: [PATCH 4258/4736] drm/amd/display: take signal type from link
+
+[Why]
+Signal is update to EDP when driver disable first encoder. The
+following encoder using SIGNAL_TYPE_EDP to handle other
+device. When encoder signal is HDMI, driver will detect it is dp
+and release phy. It cause hw hang.
+
+[How]
+Take signal type from link->connector_signal.
+
+Signed-off-by: Lewis Huang <Lewis.Huang@amd.com>
+Reviewed-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ .../drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 11 +++--------
+ 1 file changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+index d1e14393a0f0..0d171874ef4e 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+@@ -1418,8 +1418,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
+ static void power_down_encoders(struct dc *dc)
+ {
+ int i;
+- enum connector_id connector_id;
+- enum signal_type signal = SIGNAL_TYPE_NONE;
+
+ /* do not know BIOS back-front mapping, simply blank all. It will not
+ * hurt for non-DP
+@@ -1430,15 +1428,12 @@ static void power_down_encoders(struct dc *dc)
+ }
+
+ for (i = 0; i < dc->link_count; i++) {
+- connector_id = dal_graphics_object_id_get_connector_id(dc->links[i]->link_id);
+- if ((connector_id == CONNECTOR_ID_DISPLAY_PORT) ||
+- (connector_id == CONNECTOR_ID_EDP)) {
++ enum signal_type signal = dc->links[i]->connector_signal;
+
++ if ((signal == SIGNAL_TYPE_EDP) ||
++ (signal == SIGNAL_TYPE_DISPLAY_PORT))
+ if (!dc->links[i]->wa_flags.dp_keep_receiver_powered)
+ dp_receiver_power_ctrl(dc->links[i], false);
+- if (connector_id == CONNECTOR_ID_EDP)
+- signal = SIGNAL_TYPE_EDP;
+- }
+
+ dc->links[i]->link_enc->funcs->disable_output(
+ dc->links[i]->link_enc, signal);
+--
+2.17.1
+