Hi Will,

On 14/11/14 18:56, Will Deacon wrote:
Hello everybody,

Here is the fourth iteration of the RFC I've previously posted here:

   RFCv1: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-August/283023.html
   RFCv2: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/283752.html
   RFCv3: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/287031.html

Changes since RFCv3 include:

   - Drastic simplification of the data structures, so that we no longer
     pass around lists of domains. Instead, dma-mapping is expected to
     allocate the domain (Joerg talked about adding a get_default_domain
     operation to iommu_ops).

   - iommu_ops is used to hold the per-instance IOMMU data

   - Configuration of DMA segments added to of_dma_configure

All feedback welcome.


This proposal has been really useful in getting IOMMU DMA mapping running on arm64, so with the proviso that patch 6 definitely causes problems, and patches 7 and 8 ported to arm64 rather than used directly, for the series:

Tested-by: Robin Murphy <robin.mur...@arm.com>

Hopefully it's now stable enough that I can finish cleaning up my hacked-up SMMU driver (oh, the rebasing pain :P)

Thanks,
Robin.

Cheers,

Will

--->8

Will Deacon (8):
   iommu: provide early initialisation hook for IOMMU drivers
   dma-mapping: replace set_arch_dma_coherent_ops with arch_setup_dma_ops
   iommu: add new iommu_ops callback for adding an OF device
   iommu: provide helper function to configure an IOMMU for an of master
   dma-mapping: detect and configure IOMMU in of_dma_configure
   dma-mapping: set dma segment properties in of_dma_configure
   arm: call iommu_init before of_platform_populate
   arm: dma-mapping: plumb our iommu mapping ops into arch_setup_dma_ops

  arch/arm/include/asm/dma-mapping.h | 12 +++---
  arch/arm/kernel/setup.c            |  2 +
  arch/arm/mm/dma-mapping.c          | 80 ++++++++++++++++++++++++++++++++++----
  drivers/iommu/Kconfig              |  2 +-
  drivers/iommu/of_iommu.c           | 50 ++++++++++++++++++++++++
  drivers/of/platform.c              | 54 +++++++++++++------------
  include/asm-generic/vmlinux.lds.h  |  2 +
  include/linux/amba/bus.h           |  1 +
  include/linux/dma-mapping.h        | 13 ++++---
  include/linux/iommu.h              |  8 ++++
  include/linux/of_iommu.h           | 31 +++++++++++++++
  include/linux/platform_device.h    |  2 +
  12 files changed, 214 insertions(+), 43 deletions(-)



_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to