Lines Matching refs:fence

94 						 struct dma_fence **fence,  in drm_syncobj_fence_get_or_add_callback()  argument
100 WARN_ON(*fence); in drm_syncobj_fence_get_or_add_callback()
102 *fence = drm_syncobj_fence_get(syncobj); in drm_syncobj_fence_get_or_add_callback()
103 if (*fence) in drm_syncobj_fence_get_or_add_callback()
111 if (syncobj->fence) { in drm_syncobj_fence_get_or_add_callback()
112 *fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, in drm_syncobj_fence_get_or_add_callback()
116 *fence = NULL; in drm_syncobj_fence_get_or_add_callback()
165 struct dma_fence *fence) in drm_syncobj_replace_fence() argument
170 if (fence) in drm_syncobj_replace_fence()
171 dma_fence_get(fence); in drm_syncobj_replace_fence()
175 old_fence = rcu_dereference_protected(syncobj->fence, in drm_syncobj_replace_fence()
177 rcu_assign_pointer(syncobj->fence, fence); in drm_syncobj_replace_fence()
179 if (fence != old_fence) { in drm_syncobj_replace_fence()
197 static const char *drm_syncobj_null_fence_get_name(struct dma_fence *fence) in drm_syncobj_null_fence_get_name() argument
202 static bool drm_syncobj_null_fence_enable_signaling(struct dma_fence *fence) in drm_syncobj_null_fence_enable_signaling() argument
204 dma_fence_enable_sw_signaling(fence); in drm_syncobj_null_fence_enable_signaling()
205 return !dma_fence_is_signaled(fence); in drm_syncobj_null_fence_enable_signaling()
217 struct drm_syncobj_null_fence *fence; in drm_syncobj_assign_null_handle() local
218 fence = kzalloc(sizeof(*fence), GFP_KERNEL); in drm_syncobj_assign_null_handle()
219 if (fence == NULL) in drm_syncobj_assign_null_handle()
222 spin_lock_init(&fence->lock); in drm_syncobj_assign_null_handle()
223 dma_fence_init(&fence->base, &drm_syncobj_null_fence_ops, in drm_syncobj_assign_null_handle()
224 &fence->lock, 0, 0); in drm_syncobj_assign_null_handle()
225 dma_fence_signal(&fence->base); in drm_syncobj_assign_null_handle()
227 drm_syncobj_replace_fence(syncobj, &fence->base); in drm_syncobj_assign_null_handle()
229 dma_fence_put(&fence->base); in drm_syncobj_assign_null_handle()
249 struct dma_fence **fence) in drm_syncobj_find_fence() argument
257 *fence = drm_syncobj_fence_get(syncobj); in drm_syncobj_find_fence()
258 if (!*fence) { in drm_syncobj_find_fence()
295 struct dma_fence *fence) in drm_syncobj_create() argument
316 if (fence) in drm_syncobj_create()
317 drm_syncobj_replace_fence(syncobj, fence); in drm_syncobj_create()
490 struct dma_fence *fence = sync_file_get_fence(fd); in drm_syncobj_import_sync_file_fence() local
493 if (!fence) in drm_syncobj_import_sync_file_fence()
498 dma_fence_put(fence); in drm_syncobj_import_sync_file_fence()
502 drm_syncobj_replace_fence(syncobj, fence); in drm_syncobj_import_sync_file_fence()
503 dma_fence_put(fence); in drm_syncobj_import_sync_file_fence()
512 struct dma_fence *fence; in drm_syncobj_export_sync_file() local
519 ret = drm_syncobj_find_fence(file_private, handle, &fence); in drm_syncobj_export_sync_file()
523 sync_file = sync_file_create(fence); in drm_syncobj_export_sync_file()
525 dma_fence_put(fence); in drm_syncobj_export_sync_file()
662 struct dma_fence *fence; member
667 static void syncobj_wait_fence_func(struct dma_fence *fence, in syncobj_wait_fence_func() argument
683 wait->fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, in syncobj_wait_syncobj_func()
695 struct dma_fence *fence; in drm_syncobj_array_wait_timeout() local
711 entries[i].fence = drm_syncobj_fence_get(syncobjs[i]); in drm_syncobj_array_wait_timeout()
712 if (!entries[i].fence) { in drm_syncobj_array_wait_timeout()
721 if (dma_fence_is_signaled(entries[i].fence)) { in drm_syncobj_array_wait_timeout()
748 if (entries[i].fence) in drm_syncobj_array_wait_timeout()
752 &entries[i].fence, in drm_syncobj_array_wait_timeout()
763 fence = entries[i].fence; in drm_syncobj_array_wait_timeout()
764 if (!fence) in drm_syncobj_array_wait_timeout()
767 if (dma_fence_is_signaled(fence) || in drm_syncobj_array_wait_timeout()
769 dma_fence_add_callback(fence, in drm_syncobj_array_wait_timeout()
809 dma_fence_remove_callback(entries[i].fence, in drm_syncobj_array_wait_timeout()
811 dma_fence_put(entries[i].fence); in drm_syncobj_array_wait_timeout()