diff options
| author | Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> | 2017-07-27 16:47:14 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2017-09-26 18:15:58 -0400 |
| commit | f669089aa12ab9b509ed8ff3755e73794b7941ea (patch) | |
| tree | a342afe9a43c7e01c3d4f82073955e412b41ef62 | |
| parent | cbd194881e05844cc54573480aac8df3fd97222d (diff) | |
drm/amd/display: Add stateless surface validation to validate_resources
Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/core/dc.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 1c0d21840cba..83b8b196cc1e 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; |
