Lines Matching defs:dma_fence
25 struct dma_fence;
30 * struct dma_fence - software synchronization primitive
65 struct dma_fence {
105 typedef void (*dma_fence_func_t)(struct dma_fence *fence,
129 * True if this dma_fence implementation uses 64bit seqno, false
143 const char * (*get_driver_name)(struct dma_fence *fence);
155 const char * (*get_timeline_name)(struct dma_fence *fence);
178 * &dma_fence.error may be set in enable_signaling, but only when false
192 bool (*enable_signaling)(struct dma_fence *fence);
205 * May set &dma_fence.error if returning true.
209 bool (*signaled)(struct dma_fence *fence);
227 signed long (*wait)(struct dma_fence *fence,
238 void (*release)(struct dma_fence *fence);
248 void (*fence_value_str)(struct dma_fence *fence, char *str, int size);
258 void (*timeline_value_str)(struct dma_fence *fence,
270 * This is called without &dma_fence.lock held, it can be called
279 void (*set_deadline)(struct dma_fence *fence, ktime_t deadline);
282 void dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
286 void dma_fence_free(struct dma_fence *fence);
287 void dma_fence_describe(struct dma_fence *fence, struct seq_file *seq);
293 static inline void dma_fence_put(struct dma_fence *fence)
305 static inline struct dma_fence *dma_fence_get(struct dma_fence *fence)
319 static inline struct dma_fence *dma_fence_get_rcu(struct dma_fence *fence)
343 static inline struct dma_fence *
344 dma_fence_get_rcu_safe(struct dma_fence __rcu **fencep)
347 struct dma_fence *fence;
390 int dma_fence_signal(struct dma_fence *fence);
391 int dma_fence_signal_locked(struct dma_fence *fence);
392 int dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp);
393 int dma_fence_signal_timestamp_locked(struct dma_fence *fence,
395 signed long dma_fence_default_wait(struct dma_fence *fence,
397 int dma_fence_add_callback(struct dma_fence *fence,
400 bool dma_fence_remove_callback(struct dma_fence *fence,
402 void dma_fence_enable_sw_signaling(struct dma_fence *fence);
414 * This function requires &dma_fence.lock to be held.
419 dma_fence_is_signaled_locked(struct dma_fence *fence)
449 dma_fence_is_signaled(struct dma_fence *fence)
492 static inline bool dma_fence_is_later(struct dma_fence *f1,
493 struct dma_fence *f2)
510 static inline bool dma_fence_is_later_or_same(struct dma_fence *f1,
511 struct dma_fence *f2)
525 static inline struct dma_fence *dma_fence_later(struct dma_fence *f1,
526 struct dma_fence *f2)
544 * @fence: the dma_fence to query
556 static inline int dma_fence_get_status_locked(struct dma_fence *fence)
564 int dma_fence_get_status(struct dma_fence *fence);
568 * @fence: the dma_fence
575 * helper exists to help catching erroneous setting of #dma_fence.error.
577 static inline void dma_fence_set_error(struct dma_fence *fence,
594 static inline ktime_t dma_fence_timestamp(struct dma_fence *fence)
605 signed long dma_fence_wait_timeout(struct dma_fence *,
607 signed long dma_fence_wait_any_timeout(struct dma_fence **fences,
627 static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr)
640 void dma_fence_set_deadline(struct dma_fence *fence, ktime_t deadline);
642 struct dma_fence *dma_fence_get_stub(void);
643 struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp);
655 static inline bool dma_fence_is_array(struct dma_fence *fence)
666 static inline bool dma_fence_is_chain(struct dma_fence *fence)
679 static inline bool dma_fence_is_container(struct dma_fence *fence)