aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch
new file mode 100644
index 00000000..30d88f9c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2539-drm-amd-display-add-null-checks-and-set-update-flags.patch
@@ -0,0 +1,112 @@
+From bb9ce20060305691cb76c2a92d0c5f9819422a75 Mon Sep 17 00:00:00 2001
+From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Date: Mon, 8 Apr 2019 14:56:29 -0400
+Subject: [PATCH 2539/2940] drm/amd/display: add null checks and set update
+ flags for DCN2
+
+* add plane state null checks
+* add and set update surface flags
+*
+Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Reviewed-by: Eric Bernstein <Eric.Bernstein@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +++
+ drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 8 +++-----
+ drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h | 14 +++++++++++---
+ .../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 1 -
+ 4 files changed, 17 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index ddd7899b503e..02539f20d510 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -1439,6 +1439,9 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
+
+ update_flags->raw = 0; // Reset all flags
+
++ if (u->flip_addr)
++ update_flags->bits.addr_update = 1;
++
+ if (!is_surface_in_context(context, u->surface)) {
+ update_flags->bits.new_plane = 1;
+ return UPDATE_TYPE_FULL;
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+index ea56f15a51fb..f9b0ea75eeb4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+@@ -492,7 +492,7 @@ static void dcn20_plane_atomic_disable(struct dc *dc, struct pipe_ctx *pipe_ctx)
+ }
+
+
+-static void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx)
++void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx)
+ {
+ DC_LOGGER_INIT(dc->ctx->logger);
+
+@@ -501,8 +501,6 @@ static void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx)
+
+ dcn20_plane_atomic_disable(dc, pipe_ctx);
+
+- //apply_DEGVIDCN10_253_wa(dc);
+-
+ DC_LOG_DC("Power down front end %d\n",
+ pipe_ctx->pipe_idx);
+ }
+@@ -1092,7 +1090,7 @@ static void dcn20_power_on_plane(
+ }
+ }
+
+-static void dcn20_enable_plane(
++void dcn20_enable_plane(
+ struct dc *dc,
+ struct pipe_ctx *pipe_ctx,
+ struct dc_state *context)
+@@ -1167,7 +1165,7 @@ static void dcn20_enable_plane(
+ }
+
+
+-void dcn20_program_pipe(
++static void dcn20_program_pipe(
+ struct dc *dc,
+ struct pipe_ctx *pipe_ctx,
+ struct dc_state *context)
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h
+index 78a6477deffb..2b0409454073 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h
+@@ -89,7 +89,15 @@ void dcn20_pipe_control_lock_global(
+ struct pipe_ctx *pipe,
+ bool lock);
+ void dcn20_setup_gsl_group_as_lock(const struct dc *dc,
+- struct pipe_ctx *pipe_ctx,
+- bool enable);
+-
++ struct pipe_ctx *pipe_ctx,
++ bool enable);
++void dcn20_pipe_control_lock(
++ struct dc *dc,
++ struct pipe_ctx *pipe,
++ bool lock);
++void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx);
++void dcn20_enable_plane(
++ struct dc *dc,
++ struct pipe_ctx *pipe_ctx,
++ struct dc_state *context);
+ #endif /* __DC_HWSS_DCN20_H__ */
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+index ca5a7791d080..e7a8a13a9d33 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+@@ -2340,7 +2340,6 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
+ context->bw_ctx.dml.funcs.rq_dlg_get_rq_reg(&context->bw_ctx.dml,
+ &context->res_ctx.pipe_ctx[i].rq_regs,
+ pipes[pipe_idx].pipe);
+-
+ pipe_idx++;
+ }
+
+--
+2.17.1
+