From ea929e0dcb825f2fccaa097e6fbc5db0ac1a265e Mon Sep 17 00:00:00 2001 From: Dmytro Laktyushkin Date: Tue, 29 Nov 2016 13:11:08 -0500 Subject: [PATCH 0044/4131] drm/amd/display: create scratch_val_ctx as temp w/a Signed-off-by: Dmytro Laktyushkin Reviewed-by: Tony Cheng Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/dc/core/dc.c | 5 ++++- drivers/gpu/drm/amd/display/dc/inc/core_dc.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 70dc706..a3c5def 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -452,6 +452,8 @@ static void destruct(struct core_dc *dc) dm_free(dc->temp_flip_context); dc->temp_flip_context = NULL; + dm_free(dc->scratch_val_ctx); + dc->scratch_val_ctx = NULL; destroy_links(dc); @@ -490,6 +492,7 @@ static bool construct(struct core_dc *dc, dc->current_context = dm_alloc(sizeof(*dc->current_context)); dc->temp_flip_context = dm_alloc(sizeof(*dc->temp_flip_context)); + dc->scratch_val_ctx = dm_alloc(sizeof(*dc->temp_flip_context)); if (!dc->current_context || !dc->temp_flip_context) { dm_error("%s: failed to create validate ctx\n", __func__); @@ -1217,7 +1220,7 @@ bool dc_pre_update_surfaces_to_target( goto unexpected_fail; } resource_validate_ctx_destruct(context); - dm_free(context); + core_dc->scratch_val_ctx = context; context = temp_context; } diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_dc.h b/drivers/gpu/drm/amd/display/dc/inc/core_dc.h index 7d6dc8e..b5a5207 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/core_dc.h +++ b/drivers/gpu/drm/amd/display/dc/inc/core_dc.h @@ -24,6 +24,7 @@ struct core_dc { /* TODO: determine max number of targets*/ struct validate_context *current_context; struct validate_context *temp_flip_context; + struct validate_context *scratch_val_ctx; struct resource_pool *res_pool; /*Power State*/ -- 2.7.4