x86 架构中,设备通常可以通过内存映射 I/O (MMIO) 或类似机制直接访问内存,因此不需要显式申请 DMA 通道。 如果你的设备确实需要使用 DMA,则可能需要与底层硬件和对应的驱动程序实现有关。 3.是否需要调用dma_request_chan() 如果你的 x86 驱动程序涉及到 DMA 操作并且它依赖于通用的 DMA API,那么你可以使用dm...
第407行有一个函数create_channel(),它以前使用dma_request_slave_channel()来丢弃它包装的函数的错误代码,所以为了查看错误,我使用这个函数:dma_request_chan()。 函数create_channel()在函数dma_proxy_probe() @第470行中调用(在此之前的出现被编译开关禁用)。 因此,通过这个调用,将使用参数调用dma_request_chan...
这是我根据MMC3加的设备树控制XDMA_EVENT_INTR2的部分。 请问相应的dma_request_channel函数和dma_request_chan函数应如何实现。我参考了下面链接的做法,但是发现得到的是软件触发的DMA通道,并不是由我希望的XDMA_EVENT_INTR2管脚控制的DMA传输,请问哪里需要改正呢? https://e2echina.ti.com/question_...
- dspi->dma_tx = dma_request_channel(mask, edma_filter_fn, - &dspi->dma_tx_chnum); - if (!dspi->dma_tx) { - dev_err(sdev, "request TX DMA channel failed\n"); - r = -ENODEV; - goto tx_dma_failed; + dspi->dma_tx = dma_request_chan(sdev, "tx"); + if (IS_ERR(...
- dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - - host->dma_tx = - dma_request_slave_channel_compat(mask, edma_filter_fn, - &host->txdma, mmc_dev(host->mmc), "tx"); - if (!host->dma_tx) { + host->dma_tx = dma_request_chan(mmc_dev(host->mmc), "tx")...