diff options
author | Andrey Grodzovsky | 2017-07-27 22:47:14 +0200 |
---|---|---|
committer | Alex Deucher | 2017-09-27 00:15:58 +0200 |
commit | f669089aa12ab9b509ed8ff3755e73794b7941ea (patch) | |
tree | a342afe9a43c7e01c3d4f82073955e412b41ef62 /drivers/gpu | |
parent | drm/amd/display: Implement plane atomic_check. (diff) | |
download | kernel-qcow2-linux-f669089aa12ab9b509ed8ff3755e73794b7941ea.tar.gz kernel-qcow2-linux-f669089aa12ab9b509ed8ff3755e73794b7941ea.tar.xz kernel-qcow2-linux-f669089aa12ab9b509ed8ff3755e73794b7941ea.zip |
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>
Diffstat (limited to 'drivers/gpu')
-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; |