]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/powernv: Add iommu DMA bypass support for IODA2
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 11 Feb 2014 00:32:38 +0000 (11:32 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 11 Feb 2014 05:07:37 +0000 (16:07 +1100)
commite0a8d30914c3f6f6739ef229310fd061d3f5e9a1
tree80c7e63624143adc5d453106ec13f445438c6135
parentdd52ab58f78d8bb19909c2412c752deb88eb5271
powerpc/powernv: Add iommu DMA bypass support for IODA2

This patch adds the support for to create a direct iommu "bypass"
window on IODA2 bridges (such as Power8) allowing to bypass iommu
page translation completely for 64-bit DMA capable devices, thus
significantly improving DMA performances.

Additionally, this adds a hook to the struct iommu_table so that
the IOMMU API / VFIO can disable the bypass when external ownership
is requested, since in that case, the device will be used by an
environment such as userspace or a KVM guest which must not be
allowed to bypass translations.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/dma-mapping.h
arch/powerpc/include/asm/iommu.h
arch/powerpc/kernel/dma.c
arch/powerpc/kernel/iommu.c
arch/powerpc/platforms/powernv/pci-ioda.c
arch/powerpc/platforms/powernv/pci.c
arch/powerpc/platforms/powernv/pci.h
arch/powerpc/platforms/powernv/powernv.h
arch/powerpc/platforms/powernv/setup.c