dma-coherent: introduce interface for default DMA pool
authorVladimir Murzin <vladimir.murzin@arm.com>
Thu, 20 Jul 2017 10:19:58 +0000 (11:19 +0100)
committerChristoph Hellwig <hch@lst.de>
Thu, 20 Jul 2017 14:09:10 +0000 (16:09 +0200)
commit43fc509c3efb5c973991ee24c449ab2a0d71dd1e
tree759d4b3a97ecb73339c560b2814699fbf8f4f93a
parent5771a8c08880cdca3bfb4a3fc6d309d6bba20877
dma-coherent: introduce interface for default DMA pool

Christoph noticed [1] that default DMA pool in current form overload
the DMA coherent infrastructure. In reply, Robin suggested [2] to
split the per-device vs. global pool interfaces, so allocation/release
from default DMA pool is driven by dma ops implementation.

This patch implements Robin's idea and provide interface to
allocate/release/mmap the default (aka global) DMA pool.

To make it clear that existing *_from_coherent routines work on
per-device pool rename them to *_from_dev_coherent.

[1] https://lkml.org/lkml/2017/7/7/370
[2] https://lkml.org/lkml/2017/7/7/431

Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Suggested-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Andras Szemzo <sza@esh.hu>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
arch/arc/mm/dma.c
arch/arm/mm/dma-mapping.c
arch/arm64/mm/dma-mapping.c
arch/mips/mm/dma-default.c
drivers/base/dma-coherent.c
drivers/base/dma-mapping.c
include/linux/dma-mapping.h