Lines Matching defs:depend_tx
58 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
61 if (depend_tx &&
62 dma_has_cap(tx_type, depend_tx->chan->device->cap_mask))
63 return depend_tx->chan;
73 * @depend_tx: the operation that must finish before the new operation runs
77 async_tx_channel_switch(struct dma_async_tx_descriptor *depend_tx,
80 struct dma_chan *chan = depend_tx->chan;
84 /* first check to see if we can still append to depend_tx */
85 txd_lock(depend_tx);
86 if (txd_parent(depend_tx) && depend_tx->chan == tx->chan) {
87 txd_chain(depend_tx, tx);
90 txd_unlock(depend_tx);
115 txd_lock(depend_tx);
116 if (txd_parent(depend_tx)) {
117 txd_chain(depend_tx, intr_tx);
121 txd_unlock(depend_tx);
130 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR)
131 panic("%s: DMA_ERROR waiting for depend_tx\n",
144 * while holding depend_tx->lock we must avoid submitting new operations
158 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
163 if (depend_tx) {
172 BUG_ON(async_tx_test_ack(depend_tx) || txd_next(depend_tx) ||
178 txd_lock(depend_tx);
179 if (txd_parent(depend_tx)) {
184 if (depend_tx->chan == chan) {
185 txd_chain(depend_tx, tx);
193 if (depend_tx->chan == chan)
198 txd_unlock(depend_tx);
204 async_tx_channel_switch(depend_tx, tx);
219 if (depend_tx)
220 async_tx_ack(depend_tx);
238 struct dma_async_tx_descriptor *depend_tx = submit->depend_tx;
240 if (depend_tx) {
241 chan = depend_tx->chan;
262 async_tx_quiesce(&submit->depend_tx);