aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch
new file mode 100644
index 00000000..f6170231
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3504-drm-amd-display-fix-boot-up-on-vega10.patch
@@ -0,0 +1,59 @@
+From d1ddae59efd5e3fdfb03f1e181d560317ade073f Mon Sep 17 00:00:00 2001
+From: Roman Li <Roman.Li@amd.com>
+Date: Tue, 23 Jan 2018 11:12:27 -0500
+Subject: [PATCH 3504/4131] drm/amd/display: fix boot-up on vega10
+
+Fixing null-deref on Vega10 due to regression after
+'fix cursor related Pstate hang' change.
+Added null checks in setting cursor position.
+
+Signed-off-by: Roman Li <Roman.Li@amd.com>
+Reviewed-by: Eric Yang <eric.yang2@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 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 d7a21a2..364b88a 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
+@@ -2928,22 +2928,27 @@ void dce110_set_cursor_position(struct pipe_ctx *pipe_ctx)
+ if (pipe_ctx->top_pipe && pipe_ctx->plane_state != pipe_ctx->top_pipe->plane_state)
+ pos_cpy.enable = false;
+
+- ipp->funcs->ipp_cursor_set_position(ipp, &pos_cpy, &param);
+- mi->funcs->set_cursor_position(mi, &pos_cpy, &param);
++ if (ipp->funcs->ipp_cursor_set_position)
++ ipp->funcs->ipp_cursor_set_position(ipp, &pos_cpy, &param);
++ if (mi->funcs->set_cursor_position)
++ mi->funcs->set_cursor_position(mi, &pos_cpy, &param);
+ }
+
+ void dce110_set_cursor_attribute(struct pipe_ctx *pipe_ctx)
+ {
+ struct dc_cursor_attributes *attributes = &pipe_ctx->stream->cursor_attributes;
+
+- pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes(
++ if (pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes)
++ pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes(
+ pipe_ctx->plane_res.ipp, attributes);
+
+- pipe_ctx->plane_res.mi->funcs->set_cursor_attributes(
+- pipe_ctx->plane_res.mi, attributes);
++ if (pipe_ctx->plane_res.mi->funcs->set_cursor_attributes)
++ pipe_ctx->plane_res.mi->funcs->set_cursor_attributes(
++ pipe_ctx->plane_res.mi, attributes);
+
+- pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes(
+- pipe_ctx->plane_res.xfm, attributes);
++ if (pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes)
++ pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes(
++ pipe_ctx->plane_res.xfm, attributes);
+ }
+
+ static void ready_shared_resources(struct dc *dc, struct dc_state *context) {}
+--
+2.7.4
+