Lines Matching refs:DMA

2 DMA Engine API Guide
7 .. note:: For DMA Engine usage in async_tx please see:
11 Below is a guide to device driver writers on how to use the Slave-DMA API of the
12 DMA Engine. This is applicable only for slave DMA usage only.
14 DMA usage
17 The slave DMA usage consists of following steps:
19 - Allocate a DMA slave channel
31 1. Allocate a DMA slave channel
33 Channel allocation is slightly different in the slave DMA context,
34 client drivers typically need a channel from a particular DMA
44 Which will find and return the ``name`` DMA channel associated with the 'dev'
53 Next step is always to pass some specific information to the DMA
54 driver. Most of the generic information which a slave DMA can use
56 DMA direction, DMA addresses, bus widths, DMA burst lengths etc
59 If some DMA controllers have more parameters to be sent then they
79 DMA-engine are:
81 - slave_sg: DMA a list of scatter gather buffers from/to a peripheral
83 - dma_cyclic: Perform a cyclic DMA operation from/to a peripheral till the
90 interleaved DMA transfers are also possible if supported by the channel by
114 the DMA operation prior to calling dmaengine_prep_slave_sg(), and must
115 keep the scatterlist mapped until the DMA operation has completed.
116 The scatterlist must be mapped using the DMA struct device.
118 called using the DMA struct device, too.
132 added and the descriptor must then be submitted. Some DMA engine
141 case for slave/cyclic DMA.
143 For slave DMA, the subsequent transaction may not be available
145 slave DMA callbacks are permitted to prepare and submit a new
148 For cyclic DMA, a callback function may wish to terminate the
149 DMA via dmaengine_terminate_async().
151 Therefore, it is important that DMA engine drivers drop any
155 Note that callbacks will always be invoked from the DMA
174 The metadata buffer is allocated/managed by the DMA driver. The client
178 Becasue the DMA driver manages the memory area containing the metadata,
230 4. use dmaengine_desc_set_metadata_len() to tell the DMA engine the
254 added, it must be placed on the DMA engine drivers pending queue.
262 This returns a cookie can be used to check the progress of DMA engine
263 activity via other DMA engine calls not covered in this document.
265 dmaengine_submit() will not start the DMA operation, it merely adds
271 (``struct dma_async_tx_descriptor``) belongs to the DMA engine.
275 5. Issue pending DMA requests and wait for callback notification
281 On completion of each DMA operation, the next in queue is started and
302 This causes all activity for the DMA channel to be stopped, and may
303 discard data in the DMA FIFO which hasn't been fully transferred.
308 dmaengine_terminate_async() might not wait until the DMA has been fully
312 is safe to free the memory accessed by the DMA transfer or free resources
327 This pauses activity on the DMA channel without data loss.
335 Resume a previously paused DMA channel. It is invalid to resume a
351 completion of a specific DMA transaction.
355 Not all DMA engine drivers can return reliable information for
356 a running DMA channel. It is recommended that DMA engine users
366 Synchronize the termination of the DMA channel to the current context.
369 the termination of the DMA channel to the current context. The function will
373 If dmaengine_terminate_async() is used to stop the DMA channel this function