aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch
new file mode 100644
index 00000000..c421e8d3
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0052-drm-amd-display-fix-indexing-bug.patch
@@ -0,0 +1,49 @@
+From 77d5ed67738f8d3ead2ccb5fafbeba9571349687 Mon Sep 17 00:00:00 2001
+From: Tony Cheng <tony.cheng@amd.com>
+Date: Tue, 6 Dec 2016 22:12:09 -0500
+Subject: [PATCH 0052/4131] drm/amd/display: fix indexing bug
+
+- is_new_pipe_surface should be addressed with pipe idx, not surface idx
+
+Signed-off-by: Tony Cheng <tony.cheng@amd.com>
+Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index a3c5def..70b7673 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -1334,7 +1334,7 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
+ struct core_dc *core_dc = DC_TO_CORE(dc);
+ struct validate_context *context = core_dc->temp_flip_context;
+ int i, j;
+- bool is_new_pipe_surface[MAX_SURFACES];
++ bool is_new_pipe_surface[MAX_PIPES];
+ const struct dc_surface *new_surfaces[MAX_SURFACES] = { 0 };
+
+ update_surface_trace(dc, updates, surface_count);
+@@ -1353,7 +1353,7 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
+ &context->res_ctx.pipe_ctx[cur_pipe->bottom_pipe->pipe_idx];
+ }
+
+- for (j = 0; j < MAX_SURFACES; j++)
++ for (j = 0; j < MAX_PIPES; j++)
+ is_new_pipe_surface[j] = true;
+
+ for (i = 0 ; i < surface_count; i++) {
+@@ -1364,7 +1364,7 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
+ struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[j];
+
+ if (surface == pipe_ctx->surface)
+- is_new_pipe_surface[i] = false;
++ is_new_pipe_surface[j] = false;
+ }
+ }
+
+--
+2.7.4
+