Lines Matching refs:prev
44 * dma_fence_chain_init(chain, prev, fence, seqno)
46 * Initialize a fence chain node. If prev was already a chain,
50 dma_fence_chain_init(struct dma_fence_chain *chain, struct dma_fence *prev,
53 struct dma_fence_chain *prev_chain = to_dma_fence_chain(prev);
57 chain->dfc_prev = prev; /* consume caller's reference */
62 !__dma_fence_is_later(seqno, prev->seqno, prev->ops)) {
65 seqno = MAX(prev->seqno, seqno);
68 context = prev->context;
69 chain->prev_seqno = prev->seqno;
160 struct dma_fence *prev;
168 while ((prev = chain->dfc_prev) != NULL) {
173 if (kref_read(&prev->refcount) > 1)
175 if ((prev_chain = to_dma_fence_chain(prev)) == NULL)
180 * prev so this is safe. This dma_fence_put triggers
186 dma_fence_put(prev);
188 dma_fence_put(prev);
228 struct dma_fence *prev;
231 prev = dma_fence_get_rcu_safe(&chain->dfc_prev);
234 return prev;
248 struct dma_fence *prev, *splice;
255 while ((prev = get_prev(chain)) != NULL) {
256 if ((prev_chain = to_dma_fence_chain(prev)) != NULL) {
261 if (!dma_fence_is_signaled(prev))
266 if (atomic_cas_ptr(&chain->dfc_prev, prev, splice) == prev)
267 dma_fence_put(prev); /* transferred to splice */
270 dma_fence_put(prev);
274 return prev;