]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
dma-mapping: improve selection of dma_declare_coherent availability
authorChristoph Hellwig <hch@lst.de>
Sun, 3 Feb 2019 19:12:02 +0000 (20:12 +0100)
committerChristoph Hellwig <hch@lst.de>
Wed, 20 Feb 2019 14:26:35 +0000 (07:26 -0700)
This API is primarily used through DT entries, but two architectures
and two drivers call it directly.  So instead of selecting the config
symbol for random architectures pull it in implicitly for the actual
users.  Also rename the Kconfig option to describe the feature better.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Paul Burton <paul.burton@mips.com> # MIPS
Acked-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
15 files changed:
arch/arc/Kconfig
arch/arm/Kconfig
arch/arm64/Kconfig
arch/csky/Kconfig
arch/mips/Kconfig
arch/riscv/Kconfig
arch/sh/Kconfig
arch/unicore32/Kconfig
arch/x86/Kconfig
drivers/mfd/Kconfig
drivers/of/Kconfig
include/linux/device.h
include/linux/dma-mapping.h
kernel/dma/Kconfig
kernel/dma/Makefile

index ab8d6131c954e035f33c2fff848963d022be7cd9..728a0f6f838c4b2733ae22dd8dccffbd44a0ea5b 100644 (file)
@@ -31,7 +31,6 @@ config ARC
        select HAVE_ARCH_TRACEHOOK
        select HAVE_DEBUG_STACKOVERFLOW
        select HAVE_FUTEX_CMPXCHG if FUTEX
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IOREMAP_PROT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZMA
index e07e5c184d2f45fb6a6a2caf481c604849d06a45..33612e6da19ade10e36a6ee44a26b654bb6ec139 100644 (file)
@@ -32,6 +32,7 @@ config ARM
        select CLONE_BACKWARDS
        select CPU_PM if SUSPEND || CPU_IDLE
        select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
+       select DMA_DECLARE_COHERENT
        select DMA_REMAP if MMU
        select EDAC_SUPPORT
        select EDAC_ATOMIC_SCRUB
@@ -74,7 +75,6 @@ config ARM
        select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL
        select HAVE_FUNCTION_TRACER if !XIP_KERNEL
        select HAVE_GCC_PLUGINS
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
        select HAVE_IDE if PCI || ISA || PCMCIA
        select HAVE_IRQ_TIME_ACCOUNTING
index fbcf521e1c9f725f890b26e08fe82013cd4f696a..e86fac1e6b03ed5ddcaea921553e77688bd5ef36 100644 (file)
@@ -139,7 +139,6 @@ config ARM64
        select HAVE_FUNCTION_TRACER
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_GCC_PLUGINS
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_HW_BREAKPOINT if PERF_EVENTS
        select HAVE_IRQ_TIME_ACCOUNTING
        select HAVE_MEMBLOCK_NODE_MAP if NUMA
index 0a9595afe9be6dd980a54897d68eca63c2dd1063..c009a8c6394698e718013d1d7500f52ecd65bce9 100644 (file)
@@ -30,7 +30,6 @@ config CSKY
        select HAVE_ARCH_TRACEHOOK
        select HAVE_FUNCTION_TRACER
        select HAVE_FUNCTION_GRAPH_TRACER
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_LZMA
index dc5d70f674e0fae0b93b4400318ba4cd67764d67..433b9dd358243704d8c707e144392e8953756d66 100644 (file)
@@ -56,7 +56,6 @@ config MIPS
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_TRACER
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IDE
        select HAVE_IOREMAP_PROT
        select HAVE_IRQ_EXIT_ON_IRQ_STACK
index feeeaa60697caae10cbfa1cbcff6b316440a048b..51b9c97751bfea76a46f2070b81d717c99d4084e 100644 (file)
@@ -32,7 +32,6 @@ config RISCV
        select HAVE_MEMBLOCK_NODE_MAP
        select HAVE_DMA_CONTIGUOUS
        select HAVE_FUTEX_CMPXCHG if FUTEX
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_PERF_EVENTS
        select HAVE_SYSCALL_TRACEPOINTS
        select IRQ_DOMAIN
index a9c36f95744a0ab7d1e4bc76d216124c2f88fe4d..a3d2a24e75c75fb19e4b2eac2f34cfff31541209 100644 (file)
@@ -7,11 +7,11 @@ config SUPERH
        select ARCH_NO_COHERENT_DMA_MMAP if !MMU
        select HAVE_PATA_PLATFORM
        select CLKDEV_LOOKUP
+       select DMA_DECLARE_COHERENT
        select HAVE_IDE if HAS_IOPORT_MAP
        select HAVE_MEMBLOCK_NODE_MAP
        select ARCH_DISCARD_MEMBLOCK
        select HAVE_OPROFILE
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_ARCH_TRACEHOOK
        select HAVE_PERF_EVENTS
        select HAVE_DEBUG_BUGVERBOSE
index c3a41bfe161bf05de54910821318b401cb8314f8..6d2891d37e32d8a0505683d2381da29f66e338f6 100644 (file)
@@ -4,7 +4,6 @@ config UNICORE32
        select ARCH_HAS_DEVMEM_IS_ALLOWED
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_MIGHT_HAVE_PC_SERIO
-       select HAVE_GENERIC_DMA_COHERENT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_BZIP2
        select GENERIC_ATOMIC64
index 26387c7bf305bc7d4e14e2d34856802a250c55ba..0e33dede053eacfe767ef317a6e0f2e72e4352e0 100644 (file)
@@ -15,7 +15,6 @@ config X86_32
        select CLKSRC_I8253
        select CLONE_BACKWARDS
        select HAVE_AOUT
-       select HAVE_GENERIC_DMA_COHERENT
        select MODULES_USE_ELF_REL
        select OLD_SIGACTION
 
index f15f6489803dc755d2ca638444402963c6a3f281..c3ccf2c7b3efe3b5aaa81d78e0d457fce1135f30 100644 (file)
@@ -1067,6 +1067,7 @@ config MFD_SI476X_CORE
 config MFD_SM501
        tristate "Silicon Motion SM501"
        depends on HAS_DMA
+       select DMA_DECLARE_COHERENT
         ---help---
          This is the core driver for the Silicon Motion SM501 multimedia
          companion chip. This device is a multifunction device which may
@@ -1675,6 +1676,7 @@ config MFD_TC6393XB
        select GPIOLIB
        select MFD_CORE
        select MFD_TMIO
+       select DMA_DECLARE_COHERENT
        help
          Support for Toshiba Mobile IO Controller TC6393XB
 
index 3607fd2810e4e73ba95a464a6a618c227e8f6c5c..37c2ccbefecdcea72bbaee39a9ea9859d12a32e1 100644 (file)
@@ -43,6 +43,7 @@ config OF_FLATTREE
 
 config OF_EARLY_FLATTREE
        bool
+       select DMA_DECLARE_COHERENT if HAS_DMA
        select OF_FLATTREE
 
 config OF_PROMTREE
@@ -83,7 +84,7 @@ config OF_MDIO
 config OF_RESERVED_MEM
        bool
        depends on OF_EARLY_FLATTREE
-       default y if HAVE_GENERIC_DMA_COHERENT || DMA_CMA
+       default y if DMA_DECLARE_COHERENT || DMA_CMA
 
 config OF_RESOLVE
        bool
index be544400acdd9d2c34e74b5742a911b53a834361..c52d90348cef8aa2221954f3b8c01c0040fef985 100644 (file)
@@ -1017,7 +1017,7 @@ struct device {
 
        struct list_head        dma_pools;      /* dma pools (if dma'ble) */
 
-#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
+#ifdef CONFIG_DMA_DECLARE_COHERENT
        struct dma_coherent_mem *dma_mem; /* internal for coherent mem
                                             override */
 #endif
index 4210c5c1dd2153623fa995fe3a00d6dfd55cd7df..e29441b8b3b7945a2511f1a6cfb8408d0c34dc39 100644 (file)
@@ -153,7 +153,7 @@ static inline int is_device_dma_capable(struct device *dev)
        return dev->dma_mask != NULL && *dev->dma_mask != DMA_MASK_NONE;
 }
 
-#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
+#ifdef CONFIG_DMA_DECLARE_COHERENT
 /*
  * These three functions are only for dma allocator.
  * Don't use them in device drivers.
@@ -192,7 +192,7 @@ static inline int dma_mmap_from_global_coherent(struct vm_area_struct *vma,
 {
        return 0;
 }
-#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */
+#endif /* CONFIG_DMA_DECLARE_COHERENT */
 
 static inline bool dma_is_direct(const struct dma_map_ops *ops)
 {
@@ -739,7 +739,7 @@ static inline int dma_get_cache_alignment(void)
 /* flags for the coherent memory api */
 #define DMA_MEMORY_EXCLUSIVE           0x01
 
-#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
+#ifdef CONFIG_DMA_DECLARE_COHERENT
 int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
                                dma_addr_t device_addr, size_t size, int flags);
 void dma_release_declared_memory(struct device *dev);
@@ -764,7 +764,7 @@ dma_mark_declared_memory_occupied(struct device *dev,
 {
        return ERR_PTR(-EBUSY);
 }
-#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */
+#endif /* CONFIG_DMA_DECLARE_COHERENT */
 
 static inline void *dmam_alloc_coherent(struct device *dev, size_t size,
                dma_addr_t *dma_handle, gfp_t gfp)
index bde9179c6ed70920410a2fc1ce32ac105e984a48..24d45c78c6711658becd3ad5e82e01a4d80c03a4 100644 (file)
@@ -16,7 +16,7 @@ config ARCH_DMA_ADDR_T_64BIT
 config ARCH_HAS_DMA_COHERENCE_H
        bool
 
-config HAVE_GENERIC_DMA_COHERENT
+config DMA_DECLARE_COHERENT
        bool
 
 config ARCH_HAS_SETUP_DMA_OPS
index 72ff6e46aa866d02b2cbeab2bdc91c5d00f496f6..d237cf3dc181295ad3a70516716907366ed49325 100644 (file)
@@ -2,7 +2,7 @@
 
 obj-$(CONFIG_HAS_DMA)                  += mapping.o direct.o dummy.o
 obj-$(CONFIG_DMA_CMA)                  += contiguous.o
-obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += coherent.o
+obj-$(CONFIG_DMA_DECLARE_COHERENT)     += coherent.o
 obj-$(CONFIG_DMA_VIRT_OPS)             += virt.o
 obj-$(CONFIG_DMA_API_DEBUG)            += debug.o
 obj-$(CONFIG_SWIOTLB)                  += swiotlb.o