October 2017
Intermediate to advanced
586 pages
14h 8m
English
This step introduces a new data structure, struct dma_slave_config, which represents the runtime configuration for the DMA slave channel. This allows clients to specify settings, such as the DMA direction, DMA addresses, bus width, DMA burst lengths, and so on, for the peripheral.
int dmaengine_slave_config(struct dma_chan *chan, struct dma_slave_config *config)
The struct dma_slave_config structure looks like this:
/* * Please refer to the complete description in * include/linux/dmaengine.h */ struct dma_slave_config { enum dma_transfer_direction direction; phys_addr_t src_addr; phys_addr_t dst_addr; enum dma_slave_buswidth src_addr_width; enum dma_slave_buswidth dst_addr_width; u32 src_maxburst; ...