[PATCH v2 0/5] dmaengine: rcar-dmac: add iommu support for slave transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux