On Mon, Feb 08, 2016 at 05:30:49PM +0000, Brian Starkey wrote: > Hi, > > I'm resending these again to try and garner some interest. Without > this series, dma-coherent cannot be used on arm64 platforms.
I think you need to characterize that a bit better. I see plenty of instances of 'dma-coherent' in dts files, assuming you mean the DT dma-coehrent property. If not, feel free to stop reading now. Currently dma-coherent isn't well-defined, but it's de-facto semantics are that a device makes accesses which are coherent with data accesses made by CPUs with Normal, Inner Shareable, Inner Write-Back Cacheable, Outer Write-Back Cacheable attributes. > The decision to add MEMREMAP_WC came out of a previous discussion with > Dan Williams and Catalin Marinas about the same problem[1]. As pgprot_writecombine is Normal Non-Cacheable, this is a completely different idea of coherency to that described by the DT dma-coherent property. We should not overload that to mean different things. Thanks, Mark. > These patches implement a MEMREMAP_WC flag for memremap(), which can > be used to obtain writecombine mappings. This is then used for setting > up dma_coherent_mem regions which use the DMA_MEMORY_MAP flag. > They apply cleanly on 4.5-rc3. > > Patch 3 makes sure that the appropriate memset function is used > when zeroing coherent allocations, which fixes an alignment fault on > arm64. > > Best Regards, > Brian > > [1] > http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/390857.html > > Brian Starkey (3): > memremap: add MEMREMAP_WC flag > drivers: dma-coherent: use MEMREMAP_WC for DMA_MEMORY_MAP > drivers: dma-coherent: use memset_io for DMA_MEMORY_IO > > drivers/base/dma-coherent.c | 25 ++++++++++++++++++++----- > include/linux/io.h | 1 + > kernel/memremap.c | 15 +++++++++++++-- > 3 files changed, 34 insertions(+), 7 deletions(-) > > -- > 1.7.9.5 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-ker...@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >