Lines Matching refs:userq_fence

144 	struct amdgpu_userq_fence *userq_fence, *tmp;  in amdgpu_userq_fence_driver_process()  local
155 list_for_each_entry_safe(userq_fence, tmp, &fence_drv->fences, link) { in amdgpu_userq_fence_driver_process()
156 fence = &userq_fence->base; in amdgpu_userq_fence_driver_process()
163 for (i = 0; i < userq_fence->fence_drv_array_count; i++) in amdgpu_userq_fence_driver_process()
164 amdgpu_userq_fence_driver_put(userq_fence->fence_drv_array[i]); in amdgpu_userq_fence_driver_process()
166 list_del(&userq_fence->link); in amdgpu_userq_fence_driver_process()
219 static int amdgpu_userq_fence_alloc(struct amdgpu_userq_fence **userq_fence) in amdgpu_userq_fence_alloc() argument
221 *userq_fence = kmem_cache_alloc(amdgpu_userq_fence_slab, GFP_ATOMIC); in amdgpu_userq_fence_alloc()
222 return *userq_fence ? 0 : -ENOMEM; in amdgpu_userq_fence_alloc()
226 struct amdgpu_userq_fence *userq_fence, in amdgpu_userq_fence_create() argument
237 spin_lock_init(&userq_fence->lock); in amdgpu_userq_fence_create()
238 INIT_LIST_HEAD(&userq_fence->link); in amdgpu_userq_fence_create()
239 fence = &userq_fence->base; in amdgpu_userq_fence_create()
240 userq_fence->fence_drv = fence_drv; in amdgpu_userq_fence_create()
242 dma_fence_init64(fence, &amdgpu_userq_fence_ops, &userq_fence->lock, in amdgpu_userq_fence_create()
257 userq_fence->fence_drv_array = in amdgpu_userq_fence_create()
262 if (userq_fence->fence_drv_array) { in amdgpu_userq_fence_create()
264 userq_fence->fence_drv_array[i] = stored_fence_drv; in amdgpu_userq_fence_create()
270 userq_fence->fence_drv_array_count = i; in amdgpu_userq_fence_create()
273 userq_fence->fence_drv_array = NULL; in amdgpu_userq_fence_create()
274 userq_fence->fence_drv_array_count = 0; in amdgpu_userq_fence_create()
280 list_add_tail(&userq_fence->link, &fence_drv->fences); in amdgpu_userq_fence_create()
321 struct amdgpu_userq_fence *userq_fence = to_amdgpu_userq_fence(fence); in amdgpu_userq_fence_free() local
322 struct amdgpu_userq_fence_driver *fence_drv = userq_fence->fence_drv; in amdgpu_userq_fence_free()
327 kvfree(userq_fence->fence_drv_array); in amdgpu_userq_fence_free()
328 kmem_cache_free(amdgpu_userq_fence_slab, userq_fence); in amdgpu_userq_fence_free()
420 struct amdgpu_userq_fence *userq_fence; in amdgpu_userq_signal_ioctl() local
508 r = amdgpu_userq_fence_alloc(&userq_fence); in amdgpu_userq_signal_ioctl()
516 r = amdgpu_userq_fence_create(queue, userq_fence, wptr, &fence); in amdgpu_userq_signal_ioctl()
519 kmem_cache_free(amdgpu_userq_fence_slab, userq_fence); in amdgpu_userq_signal_ioctl()
868 struct amdgpu_userq_fence *userq_fence; in amdgpu_userq_wait_ioctl() local
871 userq_fence = to_amdgpu_userq_fence(fences[i]); in amdgpu_userq_wait_ioctl()
872 if (!userq_fence) { in amdgpu_userq_wait_ioctl()
887 fence_drv = userq_fence->fence_drv; in amdgpu_userq_wait_ioctl()