Lines Matching refs:dma_fence
21 #include <trace/events/dma_fence.h>
28 static struct dma_fence dma_fence_stub;
41 * DMA fences, represented by &struct dma_fence, are the kernel internal
71 * Since &dma_fence provide a cross driver contract, all drivers must follow the
110 * track asynchronous compute work using &dma_fence. No driver outside of
114 static const char *dma_fence_stub_get_name(struct dma_fence *fence)
131 struct dma_fence *dma_fence_get_stub(void)
157 struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp)
159 struct dma_fence *fence;
184 * allocated. The fence context is used for setting &dma_fence.context to a
197 * Proving correctness of all the kernel code around &dma_fence through code
220 * differences. &dma_fence interacts with almost all of the core memory
228 * waiting on a &dma_fence while holding a lock::
242 * By manually annotating all code relevant to signalling a &dma_fence we can
255 * * All code necessary to complete a &dma_fence must be annotated, from the
267 * guarantee completion of a &dma_fence. The usual example is a wait IOCTL
292 * required to eventually complete &dma_fence by calling dma_fence_signal().
362 * &dma_fence.lock held.
367 int dma_fence_signal_timestamp_locked(struct dma_fence *fence,
410 int dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp)
436 * Unlike dma_fence_signal(), this function must be called with &dma_fence.lock
442 int dma_fence_signal_locked(struct dma_fence *fence)
461 int dma_fence_signal(struct dma_fence *fence)
501 dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout)
526 * @kref: &dma_fence.recfount
528 * This is the default release functions for &dma_fence. Drivers shouldn't call
533 struct dma_fence *fence =
534 container_of(kref, struct dma_fence, refcount);
567 * dma_fence_free - default release function for &dma_fence.
573 void dma_fence_free(struct dma_fence *fence)
579 static bool __dma_fence_enable_signaling(struct dma_fence *fence)
611 void dma_fence_enable_sw_signaling(struct dma_fence *fence)
643 int dma_fence_add_callback(struct dma_fence *fence, struct dma_fence_cb *cb,
675 * @fence: the dma_fence to query
685 int dma_fence_get_status(struct dma_fence *fence)
717 dma_fence_remove_callback(struct dma_fence *fence, struct dma_fence_cb *cb)
740 dma_fence_default_wait_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
761 dma_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout)
811 dma_fence_test_signaled_any(struct dma_fence **fences, uint32_t count,
817 struct dma_fence *fence = fences[i];
848 dma_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
876 struct dma_fence *fence = fences[i];
937 * To this end, deadline hint(s) can be set on a &dma_fence via &dma_fence_set_deadline.
968 void dma_fence_set_deadline(struct dma_fence *fence, ktime_t deadline)
982 void dma_fence_describe(struct dma_fence *fence, struct seq_file *seq)
1007 dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,