aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch
new file mode 100644
index 00000000..33124b3f
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2657-drm-amd-display-Handle-as-MST-first-and-then-DP-dong.patch
@@ -0,0 +1,68 @@
+From b1eca05ccfd526b983ecf14d601e636c00917970 Mon Sep 17 00:00:00 2001
+From: Hersen Wu <hersenxs.wu@amd.com>
+Date: Mon, 23 Oct 2017 09:11:46 -0400
+Subject: [PATCH 2657/4131] drm/amd/display: Handle as MST first and then DP
+ dongle if sink support both
+
+Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 32 +++++++++++++--------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+index 18294df..be9a182 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -480,22 +480,6 @@ static void detect_dp(
+ sink_caps->signal = SIGNAL_TYPE_DISPLAY_PORT;
+ detect_dp_sink_caps(link);
+
+- /* DP active dongles */
+- if (is_dp_active_dongle(link)) {
+- link->type = dc_connection_active_dongle;
+- if (!link->dpcd_caps.sink_count.bits.SINK_COUNT) {
+- /*
+- * active dongle unplug processing for short irq
+- */
+- link_disconnect_sink(link);
+- return;
+- }
+-
+- if (link->dpcd_caps.dongle_type !=
+- DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
+- *converter_disable_audio = true;
+- }
+- }
+ if (is_mst_supported(link)) {
+ sink_caps->signal = SIGNAL_TYPE_DISPLAY_PORT_MST;
+ link->type = dc_connection_mst_branch;
+@@ -535,6 +519,22 @@ static void detect_dp(
+ sink_caps->signal = SIGNAL_TYPE_DISPLAY_PORT;
+ }
+ }
++
++ if (link->type != dc_connection_mst_branch &&
++ is_dp_active_dongle(link)) {
++ /* DP active dongles */
++ link->type = dc_connection_active_dongle;
++ if (!link->dpcd_caps.sink_count.bits.SINK_COUNT) {
++ /*
++ * active dongle unplug processing for short irq
++ */
++ link_disconnect_sink(link);
++ return;
++ }
++
++ if (link->dpcd_caps.dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER)
++ *converter_disable_audio = true;
++ }
+ } else {
+ /* DP passive dongles */
+ sink_caps->signal = dp_passive_dongle_detection(link->ddc,
+--
+2.7.4
+