Should dma_map_single take the dma controller or its consumer as an argument?

Li Chen me at linux.beauty
Wed Jun 28 04:16:21 PDT 2023


Hi Russell,

 ---- On Wed, 28 Jun 2023 19:02:47 +0800  Russell King (Oracle)  wrote --- 
 > On Wed, Jun 28, 2023 at 06:57:35PM +0800, Li Chen wrote:
 > > Hi all,
 > > 
 > > I recently encountered an issue where the dma_mask was set in the DMA controller's driver, but the consumer peripheral driver didn't set its own dma_mask.
 > 
 > It should always take the device that is *actually* performing the DMA,
 > since that is the device that has restrictions on what addresses can be
 > accessed, etc.
 > 
 > Devices that "consume" the data from a DMA controller don't access
 > memory - they are merely the targets, and they can't on their own access
 > host memory. Therefore, their dma mask _should_ be irrelevant.

Thanks for your quick response. Therefore, I just need to use chan->device->dev in my dma_map_single and there is no need to configure the dma_mask for my consumer peripherals.

Regards,
Li



More information about the linux-arm-kernel mailing list