Arnd Bergmann <arnd@xxxxxxxx> wrote @ Tue, 18 Jun 2013 12:32:44 +0200: > On Tuesday 18 June 2013 11:19:14 Will Deacon wrote: > > > > I've spoken briefly with Catalin about this and it seems like there might be > > *some* scope for sharing common dma-mapping code between architectures. > > There doesn't really need to be any architecture-specific details in > > allocating iova space and the interface to the iommu drivers is > > well-defined. The arch-specific stuff is bogged down in the non-coherent > > buffer management, but that doesn't necessarily equate to lots of code. > > > > So, the best bet would be to figure out how to split up what we have under > > arch/arm/ so that it can be re-used by arm64 and potentially other > > architectures (powerpc has some simple stuff for coherent mappings and some > > less-simple stuff for non-coherent buffers). > > I'm sure that other architectures are interested in sharing the code. > Best move it into the global mm/ directory, at least the version for > coherent mappings. I'm guessing that this kind of unification usually takes some time since we need to factor out the common code from the different ${ARCH}/mm/dma-mapping.c. Also some of ${ARCH} has IOMMU support in it. So if we want to develop our 64-bit ARM with working DMA mapping API during this transition, the step to take would be: 1, Copy arch/arm/mm/dma-mapping.c arch/arm64/mm/dma-mapping.c(+swiotlb) 2, Adapt arch/arm64/mm/dma-mapping.c(+swiotlb) to 64bit compatible. 3, Factor out the common code from them into mm/dma-mapping.c Also I guess that there may be the possibility that some of DMA mapping API may be added/tweaked to satisfy requirements from multiple ${ARCH}. We have already had some of such modifications which didn't succeed to be upstreamed yet. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html