• Home
  • Raw
  • Download

Lines Matching full:fence

3  * fence-chain: chain fences together in a timeline
10 #include <linux/dma-fence-chain.h>
12 static bool dma_fence_chain_enable_signaling(struct dma_fence *fence);
15 * dma_fence_chain_get_prev - use RCU to get a reference to the previous fence
18 * Use dma_fence_get_rcu_safe to get a reference to the previous fence of the
33 * @fence: current chain node
35 * Walk the chain to the next node. Returns the next fence or NULL if we are at
39 struct dma_fence *dma_fence_chain_walk(struct dma_fence *fence) in dma_fence_chain_walk() argument
44 chain = to_dma_fence_chain(fence); in dma_fence_chain_walk()
46 dma_fence_put(fence); in dma_fence_chain_walk()
54 if (!dma_fence_is_signaled(prev_chain->fence)) in dma_fence_chain_walk()
74 dma_fence_put(fence); in dma_fence_chain_walk()
80 * dma_fence_chain_find_seqno - find fence chain node by seqno
84 * Advance the fence pointer to the chain node which will signal this sequence
87 * Returns EINVAL if the fence is not a chain node or the sequence number has
112 static const char *dma_fence_chain_get_driver_name(struct dma_fence *fence) in dma_fence_chain_get_driver_name() argument
117 static const char *dma_fence_chain_get_timeline_name(struct dma_fence *fence) in dma_fence_chain_get_timeline_name() argument
144 static bool dma_fence_chain_enable_signaling(struct dma_fence *fence) in dma_fence_chain_enable_signaling() argument
146 struct dma_fence_chain *head = to_dma_fence_chain(fence); in dma_fence_chain_enable_signaling()
149 dma_fence_chain_for_each(fence, &head->base) { in dma_fence_chain_enable_signaling()
150 struct dma_fence_chain *chain = to_dma_fence_chain(fence); in dma_fence_chain_enable_signaling()
151 struct dma_fence *f = chain ? chain->fence : fence; in dma_fence_chain_enable_signaling()
155 dma_fence_put(fence); in dma_fence_chain_enable_signaling()
164 static bool dma_fence_chain_signaled(struct dma_fence *fence) in dma_fence_chain_signaled() argument
166 dma_fence_chain_for_each(fence, fence) { in dma_fence_chain_signaled()
167 struct dma_fence_chain *chain = to_dma_fence_chain(fence); in dma_fence_chain_signaled()
168 struct dma_fence *f = chain ? chain->fence : fence; in dma_fence_chain_signaled()
171 dma_fence_put(fence); in dma_fence_chain_signaled()
179 static void dma_fence_chain_release(struct dma_fence *fence) in dma_fence_chain_release() argument
181 struct dma_fence_chain *chain = to_dma_fence_chain(fence); in dma_fence_chain_release()
206 dma_fence_put(chain->fence); in dma_fence_chain_release()
207 dma_fence_free(fence); in dma_fence_chain_release()
221 * dma_fence_chain_init - initialize a fence chain
223 * @prev: the previous fence
224 * @fence: the current fence
225 * @seqno: the sequence number to use for the fence chain
228 * the existing chain of the previous fence.
232 struct dma_fence *fence, in dma_fence_chain_init() argument
240 chain->fence = fence; in dma_fence_chain_init()