Lines Matching refs:fence

105 typedef void (*dma_fence_func_t)(struct dma_fence *fence,
143 const char * (*get_driver_name)(struct dma_fence *fence);
155 const char * (*get_timeline_name)(struct dma_fence *fence);
192 bool (*enable_signaling)(struct dma_fence *fence);
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,
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) in dma_fence_put() argument
295 if (fence) in dma_fence_put()
296 kref_put(&fence->refcount, dma_fence_release); in dma_fence_put()
305 static inline struct dma_fence *dma_fence_get(struct dma_fence *fence) in dma_fence_get() argument
307 if (fence) in dma_fence_get()
308 kref_get(&fence->refcount); in dma_fence_get()
309 return fence; in dma_fence_get()
319 static inline struct dma_fence *dma_fence_get_rcu(struct dma_fence *fence) in dma_fence_get_rcu() argument
321 if (kref_get_unless_zero(&fence->refcount)) in dma_fence_get_rcu()
322 return fence; in dma_fence_get_rcu()
347 struct dma_fence *fence; in dma_fence_get_rcu_safe() local
349 fence = rcu_dereference(*fencep); in dma_fence_get_rcu_safe()
350 if (!fence) in dma_fence_get_rcu_safe()
353 if (!dma_fence_get_rcu(fence)) in dma_fence_get_rcu_safe()
370 if (fence == rcu_access_pointer(*fencep)) in dma_fence_get_rcu_safe()
371 return rcu_pointer_handoff(fence); in dma_fence_get_rcu_safe()
373 dma_fence_put(fence); in dma_fence_get_rcu_safe()
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);
419 dma_fence_is_signaled_locked(struct dma_fence *fence) in dma_fence_is_signaled_locked() argument
421 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled_locked()
424 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled_locked()
425 dma_fence_signal_locked(fence); in dma_fence_is_signaled_locked()
449 dma_fence_is_signaled(struct dma_fence *fence) in dma_fence_is_signaled() argument
451 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled()
454 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled()
455 dma_fence_signal(fence); in dma_fence_is_signaled()
541 static inline int dma_fence_get_status_locked(struct dma_fence *fence) in dma_fence_get_status_locked() argument
543 if (dma_fence_is_signaled_locked(fence)) in dma_fence_get_status_locked()
544 return fence->error ?: 1; in dma_fence_get_status_locked()
549 int dma_fence_get_status(struct dma_fence *fence);
562 static inline void dma_fence_set_error(struct dma_fence *fence, in dma_fence_set_error() argument
565 WARN_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)); in dma_fence_set_error()
568 fence->error = error; in dma_fence_set_error()
579 static inline ktime_t dma_fence_timestamp(struct dma_fence *fence) in dma_fence_timestamp() argument
581 if (WARN_ON(!test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))) in dma_fence_timestamp()
584 while (!test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags)) in dma_fence_timestamp()
587 return fence->timestamp; in dma_fence_timestamp()
612 static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) in dma_fence_wait() argument
620 ret = dma_fence_wait_timeout(fence, intr, MAX_SCHEDULE_TIMEOUT); in dma_fence_wait()
625 void dma_fence_set_deadline(struct dma_fence *fence, ktime_t deadline);
640 static inline bool dma_fence_is_array(struct dma_fence *fence) in dma_fence_is_array() argument
642 return fence->ops == &dma_fence_array_ops; in dma_fence_is_array()
651 static inline bool dma_fence_is_chain(struct dma_fence *fence) in dma_fence_is_chain() argument
653 return fence->ops == &dma_fence_chain_ops; in dma_fence_is_chain()
664 static inline bool dma_fence_is_container(struct dma_fence *fence) in dma_fence_is_container() argument
666 return dma_fence_is_array(fence) || dma_fence_is_chain(fence); in dma_fence_is_container()