可以使用函数dma_async_tx_descriptor_init初始化此结构。 您还需要在此结构中设置两个字段: flags:TODO:驱动程序本身是否可以修改它,还是应始终使用参数传递的标志 tx_submit:指向您必须实现的函数的指针,该函数应将当前事务描述符推送到等待调用issue_pending的挂起队列中。 在此结构中,函数指针callback_result可以初...
static struct dma_async_tx_descriptor *hc_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, enum dma_transfer_direction dir, unsigned long flags, void *context); static struct dma_async_tx_descriptor *hc_dma_prep_dma_cyclic(struct dma_chan *chan, dm...
可以使用函数dma_async_tx_descriptor_init初始化此结构。您还需要在此结构中设置两个字段: flags:TODO:驱动程序本身是否可以修改它,还是应始终使用参数传递的标志 tx_submit:指向您必须实现的函数的指针,该函数应将当前事务描述符推送到等待调用issue_pending的挂起队列中。 在此结构中,函数指针callback_result可以初始...
static struct dma_async_tx_descriptor *hc_dma_prep_slave_sg( struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, enum dma_transfer_direction dir, unsigned long flags, void *context) { return NULL; // 暂时不支持此操作 } 新的参数意义解释: sgl: 描述不连续内存块的scatterl...
void dma_async_tx_descriptor_init(struct dma_async_tx_descriptor *tx, struct dma_chan *chan) { tx->chan = chan; #ifdef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH spin_lock_init(&tx->lock); #endif } EXPORT_SYMBOL(dma_async_tx_descriptor_init); ...
dma_cookie_t dmaengine_submit(structdma_async_tx_descriptor *desc)5. Issue pending DMA requests and waitforcallback notification Interface:voiddma_async_issue_pending(structdma_chan *chan); 传输结束的时候可以用: 1. int dmaengine_terminate_all(struct dma_chan *chan) ...
dma_async_tx_descriptor_init(&desc->txd, &pch->chan);return desc; @@ -2558,10 +2581,8 @@ static struct dma_async_tx_descriptor *pl330_prep_dma_cyclic( size_t period_len, enum dma_transfer_direction direction, unsigned long flags)...
desc = xilinx_dma_alloc_tx_descriptor(chan); if (!desc) return NULL;dma_async_tx_descriptor_init(&desc->async_tx, &chan->common); desc->async_tx.tx_submit = xilinx_dma_tx_submit;/* Allocate the link descriptor from DMA pool */ segment = xilinx_cdma_alloc_tx_segment(chan);...
作用:des 参数是指向一个 struct dma_async_tx_descriptor 结构体的指针,该结构体描述了要进行的 DMA 传输的详细信息,包括传输的源地址、目标地址、传输大小、传输方向(读/写)、传输类型(如内存到内存、内存到外设等)以及任何相关的回调函数或参数。 结构体内成员:struct dma_async_tx_descriptor 的具体成员可能因...
static int hc_dma_alloc_chan_resources(struct dma_chan *chan); static void hc_dma_free_chan_resources(struct dma_chan *chan); static int hc_dma_config(struct dma_chan *chan, struct dma_slave_config *config); static struct dma_async_tx_descriptor *hc_dma_prep_dma_memcpy(struct dma_chan...