Lines Matching defs:depend_tx
46 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
49 if (depend_tx &&
50 dma_has_cap(tx_type, depend_tx->chan->device->cap_mask))
51 return depend_tx->chan;
61 * @depend_tx: the operation that must finish before the new operation runs
65 async_tx_channel_switch(struct dma_async_tx_descriptor *depend_tx,
68 struct dma_chan *chan = depend_tx->chan;
72 /* first check to see if we can still append to depend_tx */
73 txd_lock(depend_tx);
74 if (txd_parent(depend_tx) && depend_tx->chan == tx->chan) {
75 txd_chain(depend_tx, tx);
78 txd_unlock(depend_tx);
103 txd_lock(depend_tx);
104 if (txd_parent(depend_tx)) {
105 txd_chain(depend_tx, intr_tx);
109 txd_unlock(depend_tx);
118 if (dma_wait_for_async_tx(depend_tx) != DMA_COMPLETE)
119 panic("%s: DMA error waiting for depend_tx\n",
132 * while holding depend_tx->lock we must avoid submitting new operations
146 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
151 if (depend_tx) {
160 BUG_ON(async_tx_test_ack(depend_tx) || txd_next(depend_tx) ||
166 txd_lock(depend_tx);
167 if (txd_parent(depend_tx)) {
172 if (depend_tx->chan == chan) {
173 txd_chain(depend_tx, tx);
181 if (depend_tx->chan == chan)
186 txd_unlock(depend_tx);
192 async_tx_channel_switch(depend_tx, tx);
207 if (depend_tx)
208 async_tx_ack(depend_tx);
226 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
228 if (depend_tx) {
229 chan = depend_tx->chan;
250 async_tx_quiesce(&submit->depend_tx);