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);
231 signed long (*wait)(struct dma_fence *fence,
242 void (*release)(struct dma_fence *fence);
252 void (*fence_value_str)(struct dma_fence *fence, char *str, int size);
262 void (*timeline_value_str)(struct dma_fence *fence,
266 void dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
270 void dma_fence_free(struct dma_fence *fence);
276 static inline void dma_fence_put(struct dma_fence *fence) in dma_fence_put() argument
278 if (fence) in dma_fence_put()
279 kref_put(&fence->refcount, dma_fence_release); in dma_fence_put()
288 static inline struct dma_fence *dma_fence_get(struct dma_fence *fence) in dma_fence_get() argument
290 if (fence) in dma_fence_get()
291 kref_get(&fence->refcount); in dma_fence_get()
292 return fence; in dma_fence_get()
302 static inline struct dma_fence *dma_fence_get_rcu(struct dma_fence *fence) in dma_fence_get_rcu() argument
304 if (kref_get_unless_zero(&fence->refcount)) in dma_fence_get_rcu()
305 return fence; in dma_fence_get_rcu()
330 struct dma_fence *fence; in dma_fence_get_rcu_safe() local
332 fence = rcu_dereference(*fencep); in dma_fence_get_rcu_safe()
333 if (!fence) in dma_fence_get_rcu_safe()
336 if (!dma_fence_get_rcu(fence)) in dma_fence_get_rcu_safe()
353 if (fence == rcu_access_pointer(*fencep)) in dma_fence_get_rcu_safe()
354 return rcu_pointer_handoff(fence); in dma_fence_get_rcu_safe()
356 dma_fence_put(fence); in dma_fence_get_rcu_safe()
373 int dma_fence_signal(struct dma_fence *fence);
374 int dma_fence_signal_locked(struct dma_fence *fence);
375 int dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp);
376 int dma_fence_signal_timestamp_locked(struct dma_fence *fence,
378 signed long dma_fence_default_wait(struct dma_fence *fence,
380 int dma_fence_add_callback(struct dma_fence *fence,
383 bool dma_fence_remove_callback(struct dma_fence *fence,
385 void dma_fence_enable_sw_signaling(struct dma_fence *fence);
402 dma_fence_is_signaled_locked(struct dma_fence *fence) in dma_fence_is_signaled_locked() argument
404 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled_locked()
407 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled_locked()
408 dma_fence_signal_locked(fence); in dma_fence_is_signaled_locked()
432 dma_fence_is_signaled(struct dma_fence *fence) in dma_fence_is_signaled() argument
434 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in dma_fence_is_signaled()
437 if (fence->ops->signaled && fence->ops->signaled(fence)) { in dma_fence_is_signaled()
438 dma_fence_signal(fence); in dma_fence_is_signaled()
524 static inline int dma_fence_get_status_locked(struct dma_fence *fence) in dma_fence_get_status_locked() argument
526 if (dma_fence_is_signaled_locked(fence)) in dma_fence_get_status_locked()
527 return fence->error ?: 1; in dma_fence_get_status_locked()
532 int dma_fence_get_status(struct dma_fence *fence);
545 static inline void dma_fence_set_error(struct dma_fence *fence, in dma_fence_set_error() argument
548 WARN_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)); in dma_fence_set_error()
551 fence->error = error; in dma_fence_set_error()
576 static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) in dma_fence_wait() argument
584 ret = dma_fence_wait_timeout(fence, intr, MAX_SCHEDULE_TIMEOUT); in dma_fence_wait()