Lines Matching refs:sync
47 void amdgpu_sync_create(struct amdgpu_sync *sync) in amdgpu_sync_create() argument
52 sync->semaphores[i] = NULL; in amdgpu_sync_create()
55 sync->sync_to[i] = NULL; in amdgpu_sync_create()
57 hash_init(sync->fences); in amdgpu_sync_create()
58 sync->last_vm_update = NULL; in amdgpu_sync_create()
106 int amdgpu_sync_fence(struct amdgpu_device *adev, struct amdgpu_sync *sync, in amdgpu_sync_fence() argument
117 amdgpu_sync_keep_later(&sync->last_vm_update, f); in amdgpu_sync_fence()
121 hash_for_each_possible(sync->fences, e, node, f->context) { in amdgpu_sync_fence()
133 hash_add(sync->fences, &e->node, f->context); in amdgpu_sync_fence()
138 amdgpu_sync_keep_later(&sync->sync_to[fence->ring->idx], f); in amdgpu_sync_fence()
165 struct amdgpu_sync *sync, in amdgpu_sync_resv() argument
180 r = amdgpu_sync_fence(adev, sync, f); in amdgpu_sync_resv()
208 r = amdgpu_sync_fence(adev, sync, f); in amdgpu_sync_resv()
215 struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync) in amdgpu_sync_get_fence() argument
222 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_get_fence()
237 int amdgpu_sync_wait(struct amdgpu_sync *sync) in amdgpu_sync_wait() argument
243 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_wait()
257 struct fence *fence = sync->sync_to[i]; in amdgpu_sync_wait()
278 int amdgpu_sync_rings(struct amdgpu_sync *sync, in amdgpu_sync_rings() argument
290 if (!sync->sync_to[i]) in amdgpu_sync_rings()
293 fence = to_amdgpu_fence(sync->sync_to[i]); in amdgpu_sync_rings()
307 r = fence_wait(sync->sync_to[i], true); in amdgpu_sync_rings()
324 sync->semaphores[count++] = semaphore; in amdgpu_sync_rings()
368 struct amdgpu_sync *sync, in amdgpu_sync_free() argument
375 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_free()
382 amdgpu_semaphore_free(adev, &sync->semaphores[i], fence); in amdgpu_sync_free()
385 fence_put(sync->sync_to[i]); in amdgpu_sync_free()
387 fence_put(sync->last_vm_update); in amdgpu_sync_free()