Re: [PATCH v6 5/8] iommu: Add bounce page APIs
From: Joerg Roedel
Date: Thu Aug 15 2019 - 11:48:48 EST
On Thu, Aug 15, 2019 at 02:15:32PM +0800, Lu Baolu wrote:
> iommu_map/unmap() APIs haven't parameters for dma direction and
> attributions. These parameters are elementary for DMA APIs. Say,
> after map, if the dma direction is TO_DEVICE and a bounce buffer is
> used, we must sync the data from the original dma buffer to the bounce
> buffer; In the opposite direction, if dma is FROM_DEVICE, before unmap,
> we need to sync the data from the bounce buffer onto the original
> buffer.
The DMA direction from DMA-API maps to the protections in iommu_map():
DMA_FROM_DEVICE: IOMMU_WRITE
DMA_TO_DEVICE: IOMMU_READ
DMA_BIDIRECTIONAL IOMMU_READ | IOMMU_WRITE
And for the sync DMA-API also has separate functions for either
direction. So I don't see why these extra functions are needed in the
IOMMU-API.
Regards,
Joerg