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,
262 void dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
266 void dma_fence_free(struct dma_fence *fence);
267 void dma_fence_describe(struct dma_fence *fence, struct seq_file *seq);
273 static inline void dma_fence_put(struct dma_fence *fence) in dma_fence_put() argument
275 if (fence) in dma_fence_put()
276 kref_put(&fence->refcount, dma_fence_release); in dma_fence_put()
285 static inline struct dma_fence *dma_fence_get(struct dma_fence *fence) in dma_fence_get() argument
287 if (fence) in dma_fence_get()
288 kref_get(&fence->refcount); in dma_fence_get()
289 return fence; in dma_fence_get()
299 static inline struct dma_fence *dma_fence_get_rcu(struct dma_fence *fence) in dma_fence_get_rcu() argument
301 if (kref_get_unless_zero(&fence->refcount)) in dma_fence_get_rcu()
302 return fence; in dma_fence_get_rcu()
327 struct dma_fence *fence; in dma_fence_get_rcu_safe() local
329 fence = rcu_dereference(*fencep); in dma_fence_get_rcu_safe()
330 if (!fence) in dma_fence_get_rcu_safe()
333 if (!dma_fence_get_rcu(fence)) in dma_fence_get_rcu_safe()
350 if (fence == rcu_access_pointer(*fencep)) in dma_fence_get_rcu_safe()
351 return rcu_pointer_handoff(fence); in dma_fence_get_rcu_safe()
353 dma_fence_put(fence); in dma_fence_get_rcu_safe()
370 int dma_fence_signal(struct dma_fence *fence);
371 int dma_fence_signal_locked(struct dma_fence *fence);
372 int dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp);
373 int dma_fence_signal_timestamp_locked(struct dma_fence *fence,
375 signed long dma_fence_default_wait(struct dma_fence *fence,
377 int dma_fence_add_callback(struct dma_fence *fence,
380 bool dma_fence_remove_callback(struct dma_fence *fence,
382 void dma_fence_enable_sw_signaling(struct dma_fence *fence);
399 dma_fence_is_signaled_locked(struct dma_fence *fence) in dma_fence_is_signaled_locked() argument
401 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled_locked()
404 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled_locked()
405 dma_fence_signal_locked(fence); in dma_fence_is_signaled_locked()
429 dma_fence_is_signaled(struct dma_fence *fence) in dma_fence_is_signaled() argument
431 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled()
434 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled()
435 dma_fence_signal(fence); in dma_fence_is_signaled()
521 static inline int dma_fence_get_status_locked(struct dma_fence *fence) in dma_fence_get_status_locked() argument
523 if (dma_fence_is_signaled_locked(fence)) in dma_fence_get_status_locked()
524 return fence->error ?: 1; in dma_fence_get_status_locked()
529 int dma_fence_get_status(struct dma_fence *fence);
542 static inline void dma_fence_set_error(struct dma_fence *fence, in dma_fence_set_error() argument
545 WARN_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)); in dma_fence_set_error()
548 fence->error = error; in dma_fence_set_error()
573 static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) in dma_fence_wait() argument
581 ret = dma_fence_wait_timeout(fence, intr, MAX_SCHEDULE_TIMEOUT); in dma_fence_wait()
599 static inline bool dma_fence_is_array(struct dma_fence *fence) in dma_fence_is_array() argument
601 return fence->ops == &dma_fence_array_ops; in dma_fence_is_array()
610 static inline bool dma_fence_is_chain(struct dma_fence *fence) in dma_fence_is_chain() argument
612 return fence->ops == &dma_fence_chain_ops; in dma_fence_is_chain()
623 static inline bool dma_fence_is_container(struct dma_fence *fence) in dma_fence_is_container() argument
625 return dma_fence_is_array(fence) || dma_fence_is_chain(fence); in dma_fence_is_container()