aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch
new file mode 100644
index 00000000..e8e9cc40
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3108-drm-amd-display-Don-t-allow-dual-link-DVI-on-all-ASI.patch
@@ -0,0 +1,103 @@
+From f7a2e6b9d0f0b010d78b2c708475737323cbae72 Mon Sep 17 00:00:00 2001
+From: Harry Wentland <harry.wentland@amd.com>
+Date: Tue, 19 Dec 2017 16:17:22 -0500
+Subject: [PATCH 3108/4131] drm/amd/display: Don't allow dual-link DVI on all
+ ASICs.
+
+Our APUs (Carrizo, Stoney, Raven) don't support it.
+
+v2: Don't use is_apu as other ASICs might also not support it
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 5 +++--
+ drivers/gpu/drm/amd/display/dc/dc.h | 1 +
+ drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c | 1 +
+ drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c | 2 ++
+ drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c | 2 ++
+ drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c | 1 +
+ 6 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+index 261811e..37dd109 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+@@ -45,8 +45,9 @@ static void update_stream_signal(struct dc_stream_state *stream)
+ stream->signal = dc_sink->sink_signal;
+
+ if (dc_is_dvi_signal(stream->signal)) {
+- if (stream->timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST &&
+- stream->sink->sink_signal != SIGNAL_TYPE_DVI_SINGLE_LINK)
++ if (stream->ctx->dc->caps.dual_link_dvi &&
++ stream->timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST &&
++ stream->sink->sink_signal != SIGNAL_TYPE_DVI_SINGLE_LINK)
+ stream->signal = SIGNAL_TYPE_DVI_DUAL_LINK;
+ else
+ stream->signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index b30e30f..ea702e5 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -62,6 +62,7 @@ struct dc_caps {
+ bool dcc_const_color;
+ bool dynamic_audio;
+ bool is_apu;
++ bool dual_link_dvi;
+ };
+
+ struct dc_dcc_surface_param {
+diff --git a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+index 9091125..84dad36 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+@@ -852,6 +852,7 @@ static bool construct(
+ dc->caps.max_downscale_ratio = 200;
+ dc->caps.i2c_speed_in_khz = 40;
+ dc->caps.max_cursor_size = 128;
++ dc->caps.dual_link_dvi = true;
+
+ for (i = 0; i < pool->base.pipe_count; i++) {
+ pool->base.timing_generators[i] =
+diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+index 663e0a0..98d9cd0 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+@@ -1103,6 +1103,8 @@ static bool construct(
+ dc->caps.max_downscale_ratio = 200;
+ dc->caps.i2c_speed_in_khz = 100;
+ dc->caps.max_cursor_size = 128;
++ dc->caps.dual_link_dvi = true;
++
+
+ /*************************************************
+ * Create resources *
+diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+index 57cd673..5aab01d 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+@@ -835,6 +835,8 @@ static bool construct(
+ dc->caps.max_downscale_ratio = 200;
+ dc->caps.i2c_speed_in_khz = 100;
+ dc->caps.max_cursor_size = 128;
++ dc->caps.dual_link_dvi = true;
++
+ dc->debug = debug_defaults;
+
+ /*************************************************
+diff --git a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+index 8f2bd56..25d7eb1 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+@@ -793,6 +793,7 @@ static bool dce80_construct(
+ dc->caps.max_downscale_ratio = 200;
+ dc->caps.i2c_speed_in_khz = 40;
+ dc->caps.max_cursor_size = 128;
++ dc->caps.dual_link_dvi = true;
+
+ /*************************************************
+ * Create resources *
+--
+2.7.4
+