interr =0; flags= DMA_CTRL_ACK |DMA_PREP_INTERRUPT;tx= xxxxxx->dma.chan->device->device_prep_dma_memcpy(xxxxxx->dma.chan, dst, src, len, flags);if(!tx) { pr_err("Fail to prepare memcpy.\n");return-1; } tx->callback =axidma_callback; tx->callback_param =xxxxxx; cookie=...
(cts_reg); tx_intf_api->TX_INTF_REG_TX_CONFIG_write(tx_config); tx_intf_api->TX_INTF_REG_PHY_HDR_CONFIG_write(phy_hdr_config); priv->txd = priv->tx_chan->device->device_prep_slave_sg(priv->tx_chan, &(priv->tx_sg),1,DMA_MEM_TO_DEV, DMA_CTRL_ACK | DMA_PREP_INTERRUPT,...
flags,可用于向dma controller driver传递一些额外的信息,包括(具体可参考enum dma_ctrl_flags中以DMA_PREP_开头的定义): DMA_PREP_INTERRUPT,告诉DMA controller driver,本次传输完成后,产生一个中断,并调用client提供的回调函数(可在该函数返回后,通过设置struct dma_async_tx_descriptor指针中的相关字段,提供回调函...
dma_addr_t src_dma_addr = dma_map_single(dev, src, size, DMA_TO_DEVICE); dma_addr_t dest_dma_addr = dma_map_single(dev, dest, size, DMA_FROM_DEVICE); dma_async_memcpy(chan, dest_dma_addr, src_dma_addr, size, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); dma_unmap_single(dev, src...
("PL_NO_DMA error\n");64break;6566casePL_USE_DMA:67flags = DMA_CTRL_ACK |DMA_PREP_INTERRUPT;68dev0 = chan0->device;69tx0 = dev0->device_prep_dma_memcpy(chan0, dma_dst, dma_src, BUF_SIZE, flags);70if(!tx0)71printk("device_prep_dma_memcpy error\n");7273tx0->callback =...
unsignedlongflags:标志位,如 DMA_CTRL_ACK、DMA_PREP_INTERRUPT 等。 等等 以imx-sdma.c为例,上面这些函数都会返回指向struct dma_async_tx_descriptor结构体的指针,其对应于事务描述符。比如,内存到内存的复制,使用device_prep_dma_memcpy: structdma_device *dma_dev = my_dma_chan->device;structdma_async_...
enum dma_ctrl_flags - DMA flags to augment operation preparation,/ control completion, and communicate status. @DMA_PREP_INTERRUPT - trigger an interrupt (callback) upon completion of this transaction 传输完毕后产生一次中断 @DMA_CTRL_ACK - if clear, the descriptor cannot be reused until the cl...
flags,可用于向dma controller driver传递一些额外的信息,包括(具体可参考enum dma_ctrl_flags中以DMA_PREP_开头的定义): DMA_PREP_INTERRUPT,告诉DMA controller driver,本次传输完成后,产生一个中断,并调用client提供的回调函数(可在该函数返回后,通过设置struct dma_async_tx_descriptor指针中的相关字段,提供回调函...
flags,可用于向dma controller driver传递一些额外的信息,包括(具体可参考enum dma_ctrl_flags中以DMA_PREP_开头的定义): DMA_PREP_INTERRUPT,告诉DMA controller driver,本次传输完成后,产生一个中断,并调用client提供的回调函数(可在该函数返回后,通过设置struct dma_async_tx_descriptor指针中的相关字段,提供回调函...
flags= DMA_CTRL_ACK |DMA_PREP_INTERRUPT;tx= xxxxxx->dma.chan->device->device_prep_dma_memcpy(xxxxxx->dma.chan, dst, src, len, flags);if(!tx) { pr_err("Fail to prepare memcpy.\n");return-1; } tx->callback =axidma_callback; ...