linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/8] dmaengine: rcar-dmac: add iommu support for slave transfers
@ 2016-02-10  0:57 Niklas Söderlund
  2016-02-10  0:57 ` Niklas Söderlund
                   ` (8 more replies)
  0 siblings, 9 replies; 44+ messages in thread
From: Niklas Söderlund @ 2016-02-10  0:57 UTC (permalink / raw)
  To: linux-renesas-soc, linux-arm-kernel, linux-kernel, dmaengine,
	iommu
  Cc: robin.murphy, vinod.koul, laurent.pinchart, geert+renesas,
	linus.walleij, dan.j.williams, arnd, linux-arch,
	Niklas Söderlund

Hi,

This series add iommu support to rcar-dmac. It's tested on koelsch with
CONFIG_IPMMU_VMSA and by enabling the ipmmu_ds node in r8a7791.dtsi. I
verified operation by interacting with /dev/mmcblk1  which is a device
behind the iommu.

The series depends on out of tree patch '[PATCH] dmaengine: use
phys_addr_t for slave configuration' which currently is under review.

* Changes since v2
- Drop patch to add dma_{map,unmap}_page_attrs.
- Add dma_{map,unmap}_resource to handle the mapping without involving a
  'struct page'. Thanks Laurent and Robin for pointing this out.
- Use size instead of address to keep track of if a mapping exist or not
  since addr == 0 is valid. Thanks Laurent.
- Pick up patch from Robin with Laurents ack (hope it's OK for me to
  attach the ack?) to add IOMMU_MMIO.
- Fix bug in rcar_dmac_device_config where the error check where
  inverted.
- Use DMA_BIDIRECTIONAL in rcar_dmac_device_config since we at that
  point can't be sure what direction the mapping is going to be used.

* 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 (7):
  dma-mapping: add {map,unmap}_resource to dma_map_ops
  dma-mapping: add dma_{map,unmap}_resource
  arm: dma-mapping: add {map,unmap}_resource for iommu ops
  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

Robin Murphy (1):
  iommu: Add MMIO mapping type

 arch/arm/boot/dts/r8a7790.dtsi | 30 +++++++++++++++
 arch/arm/boot/dts/r8a7791.dtsi | 30 +++++++++++++++
 arch/arm/mm/dma-mapping.c      | 63 +++++++++++++++++++++++++++++++
 drivers/dma/sh/rcar-dmac.c     | 86 +++++++++++++++++++++++++++++++++---------
 drivers/iommu/io-pgtable-arm.c |  4 +-
 include/linux/dma-mapping.h    | 33 ++++++++++++++++
 include/linux/iommu.h          |  1 +
 7 files changed, 229 insertions(+), 18 deletions(-)

--
2.7.1

^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2016-02-16 13:30 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-10  0:57 [PATCH v3 0/8] dmaengine: rcar-dmac: add iommu support for slave transfers Niklas Söderlund
2016-02-10  0:57 ` Niklas Söderlund
2016-02-10  0:57 ` [PATCH v3 1/8] iommu: Add MMIO mapping type Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
     [not found]   ` <1455065878-11906-2-git-send-email-niklas.soderlund+renesas-1zkq55x86MTxsAP9Fp7wbw@public.gmane.org>
2016-02-11  0:02     ` Laurent Pinchart
2016-02-11  0:02       ` Laurent Pinchart
2016-02-11 15:57       ` Robin Murphy
     [not found]         ` <56BCAF66.8010206-5wv7dgnIgG8@public.gmane.org>
2016-02-16 12:06           ` Niklas Söderlund
2016-02-16 12:06             ` Niklas Söderlund
2016-02-16 12:43             ` Robin Murphy
2016-02-16 12:43               ` Robin Murphy
2016-02-16 13:30               ` Niklas Söderlund
2016-02-16 13:30                 ` Niklas Söderlund
2016-02-10  0:57 ` [PATCH v3 2/8] dma-mapping: add {map,unmap}_resource to dma_map_ops Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
2016-02-10 12:11   ` Sergei Shtylyov
2016-02-10 12:11     ` Sergei Shtylyov
2016-02-11  0:03   ` Laurent Pinchart
2016-02-11  0:03     ` Laurent Pinchart
2016-02-10  0:57 ` [PATCH v3 3/8] dma-mapping: add dma_{map,unmap}_resource Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
     [not found]   ` <1455065878-11906-4-git-send-email-niklas.soderlund+renesas-1zkq55x86MTxsAP9Fp7wbw@public.gmane.org>
2016-02-10 10:25     ` Robin Murphy
2016-02-10 10:25       ` Robin Murphy
2016-02-10  0:57 ` [PATCH v3 4/8] arm: dma-mapping: add {map,unmap}_resource for iommu ops Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
2016-02-11  0:12   ` Laurent Pinchart
2016-02-11  0:12     ` Laurent Pinchart
2016-02-10  0:57 ` [PATCH v3 5/8] dmaengine: rcar-dmac: group slave configuration Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
2016-02-11  0:14   ` Laurent Pinchart
2016-02-11  0:14     ` Laurent Pinchart
2016-02-10  0:57 ` [PATCH v3 6/8] dmaengine: rcar-dmac: add iommu support for slave transfers Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
     [not found]   ` <1455065878-11906-7-git-send-email-niklas.soderlund+renesas-1zkq55x86MTxsAP9Fp7wbw@public.gmane.org>
2016-02-10 10:49     ` Robin Murphy
2016-02-10 10:49       ` Robin Murphy
2016-02-11  0:33     ` Laurent Pinchart
2016-02-11  0:33       ` Laurent Pinchart
2016-02-10  0:57 ` [PATCH v3 7/8] ARM: dts: r8a7790: add iommus to dmac0 and dmac1 Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund
2016-02-10 17:55   ` Simon Horman
2016-02-11  0:50     ` Niklas Söderlund
2016-02-11  0:41   ` Laurent Pinchart
2016-02-10  0:57 ` [PATCH v3 8/8] ARM: dts: r8a7791: " Niklas Söderlund
2016-02-10  0:57   ` Niklas Söderlund

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).