From cef3345e8501fac7052c673e2f37f0b07f7accf3 Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Thu, 27 Jul 2017 16:47:14 -0400 Subject: [PATCH 0700/4131] drm/amd/display: Add stateless surface validation to validate_resources Signed-off-by: Andrey Grodzovsky Reviewed-by: Tony Cheng Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/dc/core/dc.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 1c0d218..83b8b19 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -675,6 +675,21 @@ static bool validate_streams ( return true; } +static bool validate_surfaces( + const struct dc *dc, + const struct dc_validation_set set[], + int set_count) +{ + int i, j; + + for (i = 0; i < set_count; i++) + for (j = 0; j < set[i].surface_count; j++) + if (!dc_validate_surface(dc, set[i].surfaces[j])) + return false; + + return true; +} + struct validate_context *dc_get_validate_context( const struct dc *dc, const struct dc_validation_set set[], @@ -726,6 +741,9 @@ bool dc_validate_resources( if (!validate_streams(dc, set, set_count)) return false; + if (!validate_surfaces(dc, set, set_count)) + return false; + context = dm_alloc(sizeof(struct validate_context)); if (context == NULL) goto context_alloc_fail; @@ -1065,6 +1083,9 @@ bool dc_commit_streams( if (!validate_streams(dc, set, stream_count)) return false; + if (!validate_surfaces(dc, set, stream_count)) + return false; + context = dm_alloc(sizeof(struct validate_context)); if (context == NULL) goto context_alloc_fail; -- 2.7.4