aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch
new file mode 100644
index 00000000..1225cdbc
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0338-drm-amd-display-Adding-dm-controlled-signal-type-in-.patch
@@ -0,0 +1,76 @@
+From 3282baae4b9ae0ffaf102a8aa44ae04639573d21 Mon Sep 17 00:00:00 2001
+From: Sylvia Tsai <sylvia.tsai@amd.com>
+Date: Tue, 4 Apr 2017 17:28:17 -0400
+Subject: [PATCH 0338/4131] drm/amd/display: Adding dm controlled signal type
+ in dc_stream
+
+- Adding dm controlled signal type in dc_stream
+- Adding fallback to dvi signal when output signal is hdmi and the connector
+ type is not
+
+Signed-off-by: Sylvia Tsai <sylvia.tsai@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Reviewed-by: Sylvia Tsai <Sylvia.Tsai@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 30 +++++++++++------------
+ drivers/gpu/drm/amd/display/dc/dc.h | 1 +
+ 2 files changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+index 069f588..2d40864 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+@@ -1237,22 +1237,22 @@ static struct audio *find_first_free_audio(struct resource_context *res_ctx)
+
+ static void update_stream_signal(struct core_stream *stream)
+ {
+- const struct dc_sink *dc_sink = stream->public.sink;
+-
+- if (dc_sink->sink_signal == SIGNAL_TYPE_NONE)
+- stream->signal = stream->sink->link->public.connector_signal;
+- else if (dc_sink->sink_signal == SIGNAL_TYPE_DVI_SINGLE_LINK ||
+- dc_sink->sink_signal == SIGNAL_TYPE_DVI_DUAL_LINK)
+- /* For asic supports dual link DVI, we should adjust signal type
+- * based on timing pixel clock. If pixel clock more than 165Mhz,
+- * signal is dual link, otherwise, single link.
+- */
+- if (stream->public.timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ)
+- stream->signal = SIGNAL_TYPE_DVI_DUAL_LINK;
++ if (stream->public.output_signal == SIGNAL_TYPE_NONE) {
++ const struct dc_sink *dc_sink = stream->public.sink;
++
++ if (dc_sink->sink_signal == SIGNAL_TYPE_NONE)
++ stream->signal =
++ stream->sink->link->
++ public.connector_signal;
+ else
+- stream->signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
+- else
+- stream->signal = dc_sink->sink_signal;
++ stream->signal = dc_sink->sink_signal;
++ } else {
++ stream->signal = stream->public.output_signal;
++ }
++
++ if (stream->signal == SIGNAL_TYPE_DVI_SINGLE_LINK &&
++ stream->public.timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ)
++ stream->signal = SIGNAL_TYPE_DVI_DUAL_LINK;
+ }
+
+ bool resource_is_stream_unchanged(
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index a27a6ab..97af8f6 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -411,6 +411,7 @@ enum surface_update_type {
+ struct dc_stream {
+ const struct dc_sink *sink;
+ struct dc_crtc_timing timing;
++ enum signal_type output_signal;
+
+ enum dc_color_space output_color_space;
+
+--
+2.7.4
+