iommu: Implement common IOMMU ops for DMA mapping
authorRobin Murphy <robin.murphy@arm.com>
Thu, 1 Oct 2015 19:13:58 +0000 (20:13 +0100)
committerJoerg Roedel <jroedel@suse.de>
Thu, 15 Oct 2015 14:41:04 +0000 (16:41 +0200)
commit0db2e5d18f76a66ca945447d9f610bed0a94ca5a
tree0c3d896165c2bd071eacdb06879082fcc0c32a12
parent25cb62b76430a91cc6195f902e61c2cb84ade622
iommu: Implement common IOMMU ops for DMA mapping

Taking inspiration from the existing arch/arm code, break out some
generic functions to interface the DMA-API to the IOMMU-API. This will
do the bulk of the heavy lifting for IOMMU-backed dma-mapping.

Since associating an IOVA allocator with an IOMMU domain is a fairly
common need, rather than introduce yet another private structure just to
do this for ourselves, extend the top-level struct iommu_domain with the
notion. A simple opaque cookie allows reuse by other IOMMU API users
with their various different incompatible allocator types.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/Kconfig
drivers/iommu/Makefile
drivers/iommu/dma-iommu.c [new file with mode: 0644]
include/linux/dma-iommu.h [new file with mode: 0644]
include/linux/iommu.h