Lines Matching full:tx
62 * @tx: the new operation
66 struct dma_async_tx_descriptor *tx) in async_tx_channel_switch() argument
74 if (txd_parent(depend_tx) && depend_tx->chan == tx->chan) { in async_tx_channel_switch()
75 txd_chain(depend_tx, tx); in async_tx_channel_switch()
100 txd_chain(intr_tx, tx); in async_tx_channel_switch()
121 tx->tx_submit(tx); in async_tx_channel_switch()
143 async_tx_submit(struct dma_chan *chan, struct dma_async_tx_descriptor *tx, in async_tx_submit() argument
148 tx->callback = submit->cb_fn; in async_tx_submit()
149 tx->callback_param = submit->cb_param; in async_tx_submit()
161 txd_parent(tx)); in async_tx_submit()
173 txd_chain(depend_tx, tx); in async_tx_submit()
192 async_tx_channel_switch(depend_tx, tx); in async_tx_submit()
195 txd_clear_parent(tx); in async_tx_submit()
196 tx->tx_submit(tx); in async_tx_submit()
200 txd_clear_parent(tx); in async_tx_submit()
201 tx->tx_submit(tx); in async_tx_submit()
205 async_tx_ack(tx); in async_tx_submit()
225 struct dma_async_tx_descriptor *tx; in async_trigger_callback() local
238 tx = device ? device->device_prep_dma_interrupt(chan, 0) : NULL; in async_trigger_callback()
240 tx = NULL; in async_trigger_callback()
242 if (tx) { in async_trigger_callback()
245 async_tx_submit(chan, tx, submit); in async_trigger_callback()
255 return tx; in async_trigger_callback()
260 * async_tx_quiesce - ensure tx is complete and freeable upon return
261 * @tx: transaction to quiesce
263 void async_tx_quiesce(struct dma_async_tx_descriptor **tx) in async_tx_quiesce() argument
265 if (*tx) { in async_tx_quiesce()
269 BUG_ON(async_tx_test_ack(*tx)); in async_tx_quiesce()
270 if (dma_wait_for_async_tx(*tx) != DMA_COMPLETE) in async_tx_quiesce()
273 async_tx_ack(*tx); in async_tx_quiesce()
274 *tx = NULL; in async_tx_quiesce()