Hi, This series add iommu support to rcar-dmac. It's tested on both lager and koelsch with CONFIG_IPMMU_VMSA and by enabling the ipmmu_ds node in r8a779{0,1}.dtsi. I verified operation by interacting with /dev/mmcblk1 which is a device behind the iommu. Vinod can you clarify on whether or not the way forward for this issue is to map the phys_addr to dma_addr in the client or as I do here in the controller? I could not find a clear answer to this in the last discussion about this in v1 of this series. * Changes since v1 - Add and use a dma_{map,unmap}_page_attrs to be able to map the page using attributes DMA_ATTR_NO_KERNEL_MAPPING and DMA_ATTR_SKIP_CPU_SYNC. Thanks Laurent. - Drop check if dmac is part of a iommu group or not, let the DMA mapping api handle it. - Move slave configuration data around in rcar-dmac to avoid code duplication. - Fix build issue reported by 'kbuild test robot' regarding phys_to_page not availability on some configurations. - Add DT information for r8a7791. * Changes since RFC - Switch to use the dma-mapping api instead of using the iommu_map() directly. Turns out the dma-mapper is much smarter then me... - Dropped the patch to expose domain->ops->pgsize_bitmap from within the iommu api. - Dropped the patch showing how I tested the RFC. Niklas Söderlund (5): dma-mapping: add dma_{map,unmap}_page_attrs dmaengine: rcar-dmac: group slave configuration dmaengine: rcar-dmac: add iommu support for slave transfers ARM: dts: r8a7790: add iommus to dmac0 and dmac1 ARM: dts: r8a7791: add iommus to dmac0 and dmac1 arch/arm/boot/dts/r8a7790.dtsi | 30 +++++++++++ arch/arm/boot/dts/r8a7791.dtsi | 30 +++++++++++ drivers/dma/sh/rcar-dmac.c | 88 ++++++++++++++++++++++++++------ include/asm-generic/dma-mapping-common.h | 20 +++++--- 4 files changed, 144 insertions(+), 24 deletions(-) -- 2.7.0