aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch96
1 files changed, 96 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch
new file mode 100644
index 00000000..987badcb
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0683-drm-amd-display-collapse-dce11-reset_hw_ctx_wrap-int.patch
@@ -0,0 +1,96 @@
+From db060f213109986c9f64a016040402777759f6a6 Mon Sep 17 00:00:00 2001
+From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Date: Wed, 26 Jul 2017 16:54:39 -0400
+Subject: [PATCH 0683/4131] drm/amd/display: collapse dce11 reset_hw_ctx_wrap
+ into 1 function
+
+Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../amd/display/dc/dce110/dce110_hw_sequencer.c | 47 +++++++++-------------
+ 1 file changed, 20 insertions(+), 27 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+index d457730..6afe572c 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+@@ -1345,28 +1345,6 @@ static void switch_dp_clock_sources(
+ * Public functions
+ ******************************************************************************/
+
+-static void reset_single_pipe_hw_ctx(
+- const struct core_dc *dc,
+- struct pipe_ctx *pipe_ctx,
+- struct validate_context *context)
+-{
+- core_link_disable_stream(pipe_ctx);
+- pipe_ctx->tg->funcs->set_blank(pipe_ctx->tg, true);
+- if (!hwss_wait_for_blank_complete(pipe_ctx->tg)) {
+- dm_error("DC: failed to blank crtc!\n");
+- BREAK_TO_DEBUGGER();
+- }
+- pipe_ctx->tg->funcs->disable_crtc(pipe_ctx->tg);
+- pipe_ctx->mi->funcs->free_mem_input(
+- pipe_ctx->mi, context->stream_count);
+- resource_unreference_clock_source(&context->res_ctx, dc->res_pool,
+- &pipe_ctx->clock_source);
+-
+- dc->hwss.power_down_front_end((struct core_dc *)dc, pipe_ctx->pipe_idx);
+-
+- pipe_ctx->stream = NULL;
+-}
+-
+ static void set_drr(struct pipe_ctx **pipe_ctx,
+ int num_pipes, int vmin, int vmax)
+ {
+@@ -1580,7 +1558,7 @@ static enum dc_status apply_ctx_to_hw_fpga(
+ return DC_OK;
+ }
+
+-static void reset_hw_ctx_wrap(
++static void dce110_reset_hw_ctx_wrap(
+ struct core_dc *dc,
+ struct validate_context *context)
+ {
+@@ -1603,9 +1581,24 @@ static void reset_hw_ctx_wrap(
+ continue;
+
+ if (!pipe_ctx->stream ||
+- pipe_need_reprogram(pipe_ctx_old, pipe_ctx))
+- reset_single_pipe_hw_ctx(
+- dc, pipe_ctx_old, dc->current_context);
++ pipe_need_reprogram(pipe_ctx_old, pipe_ctx)) {
++ core_link_disable_stream(pipe_ctx_old);
++ pipe_ctx_old->tg->funcs->set_blank(pipe_ctx_old->tg, true);
++ if (!hwss_wait_for_blank_complete(pipe_ctx_old->tg)) {
++ dm_error("DC: failed to blank crtc!\n");
++ BREAK_TO_DEBUGGER();
++ }
++ pipe_ctx_old->tg->funcs->disable_crtc(pipe_ctx_old->tg);
++ pipe_ctx_old->mi->funcs->free_mem_input(
++ pipe_ctx_old->mi, dc->current_context->stream_count);
++ resource_unreference_clock_source(
++ &dc->current_context->res_ctx, dc->res_pool,
++ &pipe_ctx_old->clock_source);
++
++ dc->hwss.power_down_front_end(dc, pipe_ctx_old->pipe_idx);
++
++ pipe_ctx_old->stream = NULL;
++ }
+ }
+ }
+
+@@ -2619,7 +2612,7 @@ static const struct hw_sequencer_funcs dce110_funcs = {
+ .set_drr = set_drr,
+ .get_position = get_position,
+ .set_static_screen_control = set_static_screen_control,
+- .reset_hw_ctx_wrap = reset_hw_ctx_wrap,
++ .reset_hw_ctx_wrap = dce110_reset_hw_ctx_wrap,
+ .prog_pixclk_crtc_otg = dce110_prog_pixclk_crtc_otg,
+ .setup_stereo = NULL,
+ .set_avmute = dce110_set_avmute,
+--
+2.7.4
+