aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch
new file mode 100644
index 00000000..08f81fec
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3252-drm-amd-display-Call-update_stream_signal-directly-f.patch
@@ -0,0 +1,82 @@
+From 09042047973e3e22f169d2b2b0a94eac07d8faf4 Mon Sep 17 00:00:00 2001
+From: Harry Wentland <harry.wentland@amd.com>
+Date: Mon, 18 Dec 2017 12:01:30 -0500
+Subject: [PATCH 3252/4131] drm/amd/display: Call update_stream_signal directly
+ from amdgpu_dm
+
+There's no good place in DC to cover all place where stream signal should
+be updated. update_stream_signal depends on timing which comes from DM.
+
+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/amdgpu_dm/amdgpu_dm.c | 10 +++-------
+ drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dc_stream.h | 2 ++
+ 3 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index b59e7c5..3a78c4cd 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -2615,6 +2615,7 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
+ dm_state ? (dm_state->scaling != RMX_OFF) : false);
+ }
+
++ drm_mode_set_crtcinfo(&mode, 0);
+ fill_stream_properties_from_drm_display_mode(stream,
+ &mode, &aconnector->base);
+ update_stream_scaling_settings(&mode, dm_state, stream);
+@@ -2624,6 +2625,8 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
+ drm_connector,
+ aconnector->dc_sink);
+
++ update_stream_signal(stream);
++
+ return stream;
+ }
+
+@@ -3143,13 +3146,6 @@ int amdgpu_dm_connector_mode_valid(struct drm_connector *connector,
+ goto fail;
+ }
+
+- drm_mode_set_crtcinfo(mode, 0);
+- fill_stream_properties_from_drm_display_mode(stream, mode, connector);
+-
+- stream->src.width = mode->hdisplay;
+- stream->src.height = mode->vdisplay;
+- stream->dst = stream->src;
+-
+ dc_result = dc_validate_stream(adev->dm.dc, stream);
+
+ if (dc_result == DC_OK)
+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 3cbdd8c..c3b1988 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+@@ -33,7 +33,7 @@
+ /*******************************************************************************
+ * Private functions
+ ******************************************************************************/
+-static void update_stream_signal(struct dc_stream_state *stream)
++void update_stream_signal(struct dc_stream_state *stream)
+ {
+
+ struct dc_sink *dc_sink = stream->sink;
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h b/drivers/gpu/drm/amd/display/dc/dc_stream.h
+index e23620b..2d2472b 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_stream.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h
+@@ -239,6 +239,8 @@ enum surface_update_type dc_check_update_surfaces_for_stream(
+ */
+ struct dc_stream_state *dc_create_stream_for_sink(struct dc_sink *dc_sink);
+
++void update_stream_signal(struct dc_stream_state *stream);
++
+ void dc_stream_retain(struct dc_stream_state *dc_stream);
+ void dc_stream_release(struct dc_stream_state *dc_stream);
+
+--
+2.7.4
+