diff options
| author | Sean Paul <[email protected]> | 2017-06-20 11:50:41 -0400 |
|---|---|---|
| committer | Sean Paul <[email protected]> | 2017-06-20 11:50:41 -0400 |
| commit | b15cdca5b5de52dc2262c41917e8727b96b30fb0 (patch) | |
| tree | f61c45517b1763e40ebc1d2fbed3af906281ead5 /drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | |
| parent | d4e0045c4ed300781d2d4cbab57d05ed5e665a37 (diff) | |
| parent | 8c52f36413063bedbb3d31a65048a61ea2f1e169 (diff) | |
Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next-fixes
Backmerging airlied/drm-next
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c index ed814e6d0207..a6899180b265 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c @@ -298,6 +298,25 @@ struct dma_fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync) return NULL; } +int amdgpu_sync_wait(struct amdgpu_sync *sync, bool intr) +{ + struct amdgpu_sync_entry *e; + struct hlist_node *tmp; + int i, r; + + hash_for_each_safe(sync->fences, i, tmp, e, node) { + r = dma_fence_wait(e->fence, intr); + if (r) + return r; + + hash_del(&e->node); + dma_fence_put(e->fence); + kmem_cache_free(amdgpu_sync_slab, e); + } + + return 0; +} + /** * amdgpu_sync_free - free the sync object * |