diff options
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.patch | 68 |
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 + |