Lines Matching refs:fence

144 	struct dma_fence *fence;  member
181 struct dma_fence *fence; in drm_syncobj_fence_add_wait() local
183 if (wait->fence) in drm_syncobj_fence_add_wait()
191 fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, 1)); in drm_syncobj_fence_add_wait()
192 if (!fence || dma_fence_chain_find_seqno(&fence, wait->point)) { in drm_syncobj_fence_add_wait()
193 dma_fence_put(fence); in drm_syncobj_fence_add_wait()
195 } else if (!fence) { in drm_syncobj_fence_add_wait()
196 wait->fence = dma_fence_get_stub(); in drm_syncobj_fence_add_wait()
198 wait->fence = fence; in drm_syncobj_fence_add_wait()
225 struct dma_fence *fence, in drm_syncobj_add_point() argument
231 dma_fence_get(fence); in drm_syncobj_add_point()
239 dma_fence_chain_init(chain, prev, fence, point); in drm_syncobj_add_point()
240 rcu_assign_pointer(syncobj->fence, &chain->base); in drm_syncobj_add_point()
247 dma_fence_chain_for_each(fence, prev); in drm_syncobj_add_point()
260 struct dma_fence *fence) in drm_syncobj_replace_fence() argument
265 if (fence) in drm_syncobj_replace_fence()
266 dma_fence_get(fence); in drm_syncobj_replace_fence()
270 old_fence = rcu_dereference_protected(syncobj->fence, in drm_syncobj_replace_fence()
272 rcu_assign_pointer(syncobj->fence, fence); in drm_syncobj_replace_fence()
274 if (fence != old_fence) { in drm_syncobj_replace_fence()
293 struct dma_fence *fence = dma_fence_get_stub(); in drm_syncobj_assign_null_handle() local
295 drm_syncobj_replace_fence(syncobj, fence); in drm_syncobj_assign_null_handle()
296 dma_fence_put(fence); in drm_syncobj_assign_null_handle()
318 struct dma_fence **fence) in drm_syncobj_find_fence() argument
328 *fence = drm_syncobj_fence_get(syncobj); in drm_syncobj_find_fence()
331 if (*fence) { in drm_syncobj_find_fence()
332 ret = dma_fence_chain_find_seqno(fence, point); in drm_syncobj_find_fence()
335 dma_fence_put(*fence); in drm_syncobj_find_fence()
350 if (wait.fence) { in drm_syncobj_find_fence()
368 *fence = wait.fence; in drm_syncobj_find_fence()
406 struct dma_fence *fence) in drm_syncobj_create() argument
421 if (fence) in drm_syncobj_create()
422 drm_syncobj_replace_fence(syncobj, fence); in drm_syncobj_create()
594 struct dma_fence *fence = sync_file_get_fence(fd); in drm_syncobj_import_sync_file_fence() local
597 if (!fence) in drm_syncobj_import_sync_file_fence()
602 dma_fence_put(fence); in drm_syncobj_import_sync_file_fence()
606 drm_syncobj_replace_fence(syncobj, fence); in drm_syncobj_import_sync_file_fence()
607 dma_fence_put(fence); in drm_syncobj_import_sync_file_fence()
616 struct dma_fence *fence; in drm_syncobj_export_sync_file() local
623 ret = drm_syncobj_find_fence(file_private, handle, 0, 0, &fence); in drm_syncobj_export_sync_file()
627 sync_file = sync_file_create(fence); in drm_syncobj_export_sync_file()
629 dma_fence_put(fence); in drm_syncobj_export_sync_file()
768 struct dma_fence *fence; in drm_syncobj_transfer_to_timeline() local
778 &fence); in drm_syncobj_transfer_to_timeline()
786 drm_syncobj_add_point(timeline_syncobj, chain, fence, args->dst_point); in drm_syncobj_transfer_to_timeline()
788 dma_fence_put(fence); in drm_syncobj_transfer_to_timeline()
800 struct dma_fence *fence; in drm_syncobj_transfer_to_binary() local
807 args->src_point, args->flags, &fence); in drm_syncobj_transfer_to_binary()
810 drm_syncobj_replace_fence(binary_syncobj, fence); in drm_syncobj_transfer_to_binary()
811 dma_fence_put(fence); in drm_syncobj_transfer_to_binary()
838 static void syncobj_wait_fence_func(struct dma_fence *fence, in syncobj_wait_fence_func() argument
850 struct dma_fence *fence; in syncobj_wait_syncobj_func() local
853 fence = rcu_dereference_protected(syncobj->fence, in syncobj_wait_syncobj_func()
855 dma_fence_get(fence); in syncobj_wait_syncobj_func()
856 if (!fence || dma_fence_chain_find_seqno(&fence, wait->point)) { in syncobj_wait_syncobj_func()
857 dma_fence_put(fence); in syncobj_wait_syncobj_func()
859 } else if (!fence) { in syncobj_wait_syncobj_func()
860 wait->fence = dma_fence_get_stub(); in syncobj_wait_syncobj_func()
862 wait->fence = fence; in syncobj_wait_syncobj_func()
877 struct dma_fence *fence; in drm_syncobj_array_wait_timeout() local
906 struct dma_fence *fence; in drm_syncobj_array_wait_timeout() local
910 fence = drm_syncobj_fence_get(syncobjs[i]); in drm_syncobj_array_wait_timeout()
911 if (!fence || dma_fence_chain_find_seqno(&fence, points[i])) { in drm_syncobj_array_wait_timeout()
912 dma_fence_put(fence); in drm_syncobj_array_wait_timeout()
921 if (fence) in drm_syncobj_array_wait_timeout()
922 entries[i].fence = fence; in drm_syncobj_array_wait_timeout()
924 entries[i].fence = dma_fence_get_stub(); in drm_syncobj_array_wait_timeout()
927 dma_fence_is_signaled(entries[i].fence)) { in drm_syncobj_array_wait_timeout()
956 fence = entries[i].fence; in drm_syncobj_array_wait_timeout()
957 if (!fence) in drm_syncobj_array_wait_timeout()
961 dma_fence_is_signaled(fence) || in drm_syncobj_array_wait_timeout()
963 dma_fence_add_callback(fence, in drm_syncobj_array_wait_timeout()
1000 dma_fence_remove_callback(entries[i].fence, in drm_syncobj_array_wait_timeout()
1002 dma_fence_put(entries[i].fence); in drm_syncobj_array_wait_timeout()
1325 struct dma_fence *fence = dma_fence_get_stub(); in drm_syncobj_timeline_signal_ioctl() local
1328 fence, points[i]); in drm_syncobj_timeline_signal_ioctl()
1329 dma_fence_put(fence); in drm_syncobj_timeline_signal_ioctl()
1368 struct dma_fence *fence; in drm_syncobj_query_ioctl() local
1371 fence = drm_syncobj_fence_get(syncobjs[i]); in drm_syncobj_query_ioctl()
1372 chain = to_dma_fence_chain(fence); in drm_syncobj_query_ioctl()
1376 dma_fence_chain_for_each(iter, fence) { in drm_syncobj_query_ioctl()
1377 if (iter->context != fence->context) { in drm_syncobj_query_ioctl()