diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0354-drm-amd-display-Return-context-from-validate_context.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0354-drm-amd-display-Return-context-from-validate_context.patch | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0354-drm-amd-display-Return-context-from-validate_context.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0354-drm-amd-display-Return-context-from-validate_context.patch deleted file mode 100644 index 9f700078..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.14.71/0354-drm-amd-display-Return-context-from-validate_context.patch +++ /dev/null @@ -1,171 +0,0 @@ -From a3878a5da6834fafb5cc42ec335741a17713a091 Mon Sep 17 00:00:00 2001 -From: Harry Wentland <harry.wentland@amd.com> -Date: Wed, 29 Mar 2017 11:22:05 -0400 -Subject: [PATCH 0354/4131] drm/amd/display: Return context from - validate_context - -This will allow us to carry it from check to commit - -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> -Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - .../drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 26 +++++++++++----- - drivers/gpu/drm/amd/display/dc/core/dc.c | 36 +++++++++++++++++----- - drivers/gpu/drm/amd/display/dc/dc.h | 5 +++ - 3 files changed, 52 insertions(+), 15 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c -index dbeee59..bb55944 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c -@@ -1557,6 +1557,7 @@ int amdgpu_dm_connector_mode_valid( - /* TODO: Unhardcode stream count */ - struct dc_stream *stream; - struct amdgpu_connector *aconnector = to_amdgpu_connector(connector); -+ struct validate_context *context; - - if ((mode->flags & DRM_MODE_FLAG_INTERLACE) || - (mode->flags & DRM_MODE_FLAG_DBLSCAN)) -@@ -1591,8 +1592,13 @@ int amdgpu_dm_connector_mode_valid( - stream->src.height = mode->vdisplay; - stream->dst = stream->src; - -- if (dc_validate_resources(adev->dm.dc, &val_set, 1)) -+ context = dc_get_validate_context(adev->dm.dc, &val_set, 1); -+ -+ if (context) { - result = MODE_OK; -+ dc_resource_validate_ctx_destruct(context); -+ dm_free(context); -+ } - - dc_stream_release(stream); - -@@ -3023,6 +3029,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev, - struct amdgpu_device *adev = dev->dev_private; - struct dc *dc = adev->dm.dc; - bool need_to_validate = false; -+ struct validate_context *context; - - ret = drm_atomic_helper_check(dev, state); - -@@ -3245,15 +3252,20 @@ int amdgpu_dm_atomic_check(struct drm_device *dev, - } - } - -- if (need_to_validate == false || set_count == 0 || -- dc_validate_resources(dc, set, set_count)) -+ context = dc_get_validate_context(dc, set, set_count); -+ -+ if (need_to_validate == false || set_count == 0 || context) - ret = 0; - -- for (i = 0; i < set_count; i++) { -- for (j = 0; j < set[i].surface_count; j++) { -- dc_surface_release(set[i].surfaces[j]); -- } -+ if (context) { -+ dc_resource_validate_ctx_destruct(context); -+ dm_free(context); - } -+ -+ for (i = 0; i < set_count; i++) -+ for (j = 0; j < set[i].surface_count; j++) -+ dc_surface_release(set[i].surfaces[j]); -+ - for (i = 0; i < new_stream_count; i++) - dc_stream_release(new_streams[i]); - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c -index 5620fe3..64b5216 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c -@@ -635,7 +635,7 @@ static bool is_validation_required( - return false; - } - --bool dc_validate_resources( -+struct validate_context *dc_get_validate_context( - const struct dc *dc, - const struct dc_validation_set set[], - uint8_t set_count) -@@ -644,31 +644,51 @@ bool dc_validate_resources( - enum dc_status result = DC_ERROR_UNEXPECTED; - struct validate_context *context; - -- if (!is_validation_required(core_dc, set, set_count)) -- return true; -- - context = dm_alloc(sizeof(struct validate_context)); - if(context == NULL) - goto context_alloc_fail; - -+ if (!is_validation_required(core_dc, set, set_count)) { -+ dc_resource_validate_ctx_copy_construct(core_dc->current_context, context); -+ return context; -+ } -+ - result = core_dc->res_pool->funcs->validate_with_context( - core_dc, set, set_count, context); - -- dc_resource_validate_ctx_destruct(context); -- dm_free(context); -- - context_alloc_fail: - if (result != DC_OK) { - dm_logger_write(core_dc->ctx->logger, LOG_WARNING, - "%s:resource validation failed, dc_status:%d\n", - __func__, - result); -+ -+ dc_resource_validate_ctx_destruct(context); -+ dm_free(context); -+ context = NULL; - } - -- return (result == DC_OK); -+ return context; - - } - -+bool dc_validate_resources( -+ const struct dc *dc, -+ const struct dc_validation_set set[], -+ uint8_t set_count) -+{ -+ struct validate_context *ctx; -+ -+ ctx = dc_get_validate_context(dc, set, set_count); -+ if (ctx) { -+ dc_resource_validate_ctx_destruct(ctx); -+ dm_free(ctx); -+ return true; -+ } -+ -+ return false; -+} -+ - bool dc_validate_guaranteed( - const struct dc *dc, - const struct dc_stream *stream) -diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h -index 7de2080..1b3fd79 100644 ---- a/drivers/gpu/drm/amd/display/dc/dc.h -+++ b/drivers/gpu/drm/amd/display/dc/dc.h -@@ -505,6 +505,11 @@ struct dc_validation_set { - * After this call: - * No hardware is programmed for call. Only validation is done. - */ -+struct validate_context *dc_get_validate_context( -+ const struct dc *dc, -+ const struct dc_validation_set set[], -+ uint8_t set_count); -+ - bool dc_validate_resources( - const struct dc *dc, - const struct dc_validation_set set[], --- -2.7.4 - |