Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dma-mapping: always build the direct mapping code

All architectures except for sparc64 use the dma-direct code in some
form, and even for sparc64 we had the discussion of a direct mapping
mode a while ago. In preparation for directly calling the direct
mapping code don't bother having it optionally but always build the
code in. This is a minor hardship for some powerpc and arm configs
that don't pull it in yet (although they should in a relase ot two),
and sparc64 which currently doesn't need it at all, but it will
reduce the ifdef mess we'd otherwise need significantly.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
Tested-by: Tony Luck <tony.luck@intel.com>

+1 -31
-1
arch/alpha/Kconfig
··· 203 203 config ALPHA_JENSEN 204 204 bool "Jensen" 205 205 depends on BROKEN 206 - select DMA_DIRECT_OPS 207 206 help 208 207 DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one 209 208 of the first-generation Alpha systems. A number of these systems
-1
arch/arc/Kconfig
··· 17 17 select BUILDTIME_EXTABLE_SORT 18 18 select CLONE_BACKWARDS 19 19 select COMMON_CLK 20 - select DMA_DIRECT_OPS 21 20 select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC) 22 21 select GENERIC_CLOCKEVENTS 23 22 select GENERIC_FIND_FIRST_BIT
-1
arch/arm/Kconfig
··· 30 30 select CLONE_BACKWARDS 31 31 select CPU_PM if (SUSPEND || CPU_IDLE) 32 32 select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS 33 - select DMA_DIRECT_OPS if !MMU 34 33 select DMA_REMAP if MMU 35 34 select EDAC_SUPPORT 36 35 select EDAC_ATOMIC_SCRUB
-1
arch/arm64/Kconfig
··· 80 80 select CPU_PM if (SUSPEND || CPU_IDLE) 81 81 select CRC32 82 82 select DCACHE_WORD_ACCESS 83 - select DMA_DIRECT_OPS 84 83 select DMA_DIRECT_REMAP 85 84 select EDAC_SUPPORT 86 85 select FRAME_POINTER
-1
arch/c6x/Kconfig
··· 9 9 select ARCH_HAS_SYNC_DMA_FOR_CPU 10 10 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 11 11 select CLKDEV_LOOKUP 12 - select DMA_DIRECT_OPS 13 12 select GENERIC_ATOMIC64 14 13 select GENERIC_IRQ_SHOW 15 14 select HAVE_ARCH_TRACEHOOK
-1
arch/csky/Kconfig
··· 7 7 select COMMON_CLK 8 8 select CLKSRC_MMIO 9 9 select CLKSRC_OF 10 - select DMA_DIRECT_OPS 11 10 select DMA_DIRECT_REMAP 12 11 select IRQ_DOMAIN 13 12 select HANDLE_DOMAIN_IRQ
-1
arch/h8300/Kconfig
··· 22 22 select HAVE_ARCH_KGDB 23 23 select HAVE_ARCH_HASH 24 24 select CPU_NO_EFFICIENT_FFS 25 - select DMA_DIRECT_OPS 26 25 27 26 config CPU_BIG_ENDIAN 28 27 def_bool y
-1
arch/hexagon/Kconfig
··· 31 31 select GENERIC_CLOCKEVENTS_BROADCAST 32 32 select MODULES_USE_ELF_RELA 33 33 select GENERIC_CPU_DEVICES 34 - select DMA_DIRECT_OPS 35 34 ---help--- 36 35 Qualcomm Hexagon is a processor architecture designed for high 37 36 performance and low power across a wide variety of applications.
-1
arch/m68k/Kconfig
··· 26 26 select MODULES_USE_ELF_RELA 27 27 select OLD_SIGSUSPEND3 28 28 select OLD_SIGACTION 29 - select DMA_DIRECT_OPS if HAS_DMA 30 29 select ARCH_DISCARD_MEMBLOCK 31 30 32 31 config CPU_BIG_ENDIAN
-1
arch/microblaze/Kconfig
··· 12 12 select TIMER_OF 13 13 select CLONE_BACKWARDS3 14 14 select COMMON_CLK 15 - select DMA_DIRECT_OPS 16 15 select GENERIC_ATOMIC64 17 16 select GENERIC_CLOCKEVENTS 18 17 select GENERIC_CPU_DEVICES
-1
arch/mips/Kconfig
··· 16 16 select BUILDTIME_EXTABLE_SORT 17 17 select CLONE_BACKWARDS 18 18 select CPU_PM if CPU_IDLE 19 - select DMA_DIRECT_OPS 20 19 select GENERIC_ATOMIC64 if !64BIT 21 20 select GENERIC_CLOCKEVENTS 22 21 select GENERIC_CMOS_UPDATE
-1
arch/nds32/Kconfig
··· 11 11 select CLKSRC_MMIO 12 12 select CLONE_BACKWARDS 13 13 select COMMON_CLK 14 - select DMA_DIRECT_OPS 15 14 select GENERIC_ATOMIC64 16 15 select GENERIC_CPU_DEVICES 17 16 select GENERIC_CLOCKEVENTS
-1
arch/nios2/Kconfig
··· 4 4 select ARCH_HAS_SYNC_DMA_FOR_CPU 5 5 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 6 6 select ARCH_NO_SWAP 7 - select DMA_DIRECT_OPS 8 7 select TIMER_OF 9 8 select GENERIC_ATOMIC64 10 9 select GENERIC_CLOCKEVENTS
-1
arch/openrisc/Kconfig
··· 7 7 config OPENRISC 8 8 def_bool y 9 9 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 10 - select DMA_DIRECT_OPS 11 10 select OF 12 11 select OF_EARLY_FLATTREE 13 12 select IRQ_DOMAIN
-1
arch/parisc/Kconfig
··· 185 185 depends on PA7000 || PA7100LC || PA7200 || PA7300LC 186 186 select ARCH_HAS_SYNC_DMA_FOR_CPU 187 187 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 188 - select DMA_DIRECT_OPS 189 188 select DMA_NONCOHERENT_CACHE_SYNC 190 189 191 190 config PREFETCH
-1
arch/riscv/Kconfig
··· 19 19 select ARCH_WANT_FRAME_POINTERS 20 20 select CLONE_BACKWARDS 21 21 select COMMON_CLK 22 - select DMA_DIRECT_OPS 23 22 select GENERIC_CLOCKEVENTS 24 23 select GENERIC_CPU_DEVICES 25 24 select GENERIC_IRQ_SHOW
-1
arch/s390/Kconfig
··· 139 139 select HAVE_COPY_THREAD_TLS 140 140 select HAVE_DEBUG_KMEMLEAK 141 141 select HAVE_DMA_CONTIGUOUS 142 - select DMA_DIRECT_OPS 143 142 select HAVE_DYNAMIC_FTRACE 144 143 select HAVE_DYNAMIC_FTRACE_WITH_REGS 145 144 select HAVE_EFFICIENT_UNALIGNED_ACCESS
-1
arch/sh/Kconfig
··· 7 7 select ARCH_NO_COHERENT_DMA_MMAP if !MMU 8 8 select HAVE_PATA_PLATFORM 9 9 select CLKDEV_LOOKUP 10 - select DMA_DIRECT_OPS 11 10 select HAVE_IDE if HAS_IOPORT_MAP 12 11 select HAVE_MEMBLOCK_NODE_MAP 13 12 select ARCH_DISCARD_MEMBLOCK
-1
arch/sparc/Kconfig
··· 48 48 config SPARC32 49 49 def_bool !64BIT 50 50 select ARCH_HAS_SYNC_DMA_FOR_CPU 51 - select DMA_DIRECT_OPS 52 51 select GENERIC_ATOMIC64 53 52 select CLZ_TAB 54 53 select HAVE_UID16
-1
arch/unicore32/Kconfig
··· 4 4 select ARCH_HAS_DEVMEM_IS_ALLOWED 5 5 select ARCH_MIGHT_HAVE_PC_PARPORT 6 6 select ARCH_MIGHT_HAVE_PC_SERIO 7 - select DMA_DIRECT_OPS 8 7 select HAVE_GENERIC_DMA_COHERENT 9 8 select HAVE_KERNEL_GZIP 10 9 select HAVE_KERNEL_BZIP2
-1
arch/x86/Kconfig
··· 89 89 select CLOCKSOURCE_VALIDATE_LAST_CYCLE 90 90 select CLOCKSOURCE_WATCHDOG 91 91 select DCACHE_WORD_ACCESS 92 - select DMA_DIRECT_OPS 93 92 select EDAC_ATOMIC_SCRUB 94 93 select EDAC_SUPPORT 95 94 select GENERIC_CLOCKEVENTS
-1
arch/xtensa/Kconfig
··· 9 9 select BUILDTIME_EXTABLE_SORT 10 10 select CLONE_BACKWARDS 11 11 select COMMON_CLK 12 - select DMA_DIRECT_OPS 13 12 select DMA_REMAP if MMU 14 13 select GENERIC_ATOMIC64 15 14 select GENERIC_CLOCKEVENTS
-7
kernel/dma/Kconfig
··· 35 35 config ARCH_HAS_DMA_MMAP_PGPROT 36 36 bool 37 37 38 - config DMA_DIRECT_OPS 39 - bool 40 - depends on HAS_DMA 41 - 42 38 config DMA_NONCOHERENT_CACHE_SYNC 43 39 bool 44 - depends on DMA_DIRECT_OPS 45 40 46 41 config DMA_VIRT_OPS 47 42 bool ··· 44 49 45 50 config SWIOTLB 46 51 bool 47 - select DMA_DIRECT_OPS 48 52 select NEED_DMA_MAP_STATE 49 53 50 54 config DMA_REMAP ··· 52 58 53 59 config DMA_DIRECT_REMAP 54 60 bool 55 - depends on DMA_DIRECT_OPS 56 61 select DMA_REMAP
+1 -2
kernel/dma/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 3 - obj-$(CONFIG_HAS_DMA) += mapping.o 3 + obj-$(CONFIG_HAS_DMA) += mapping.o direct.o 4 4 obj-$(CONFIG_DMA_CMA) += contiguous.o 5 5 obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += coherent.o 6 - obj-$(CONFIG_DMA_DIRECT_OPS) += direct.o 7 6 obj-$(CONFIG_DMA_VIRT_OPS) += virt.o 8 7 obj-$(CONFIG_DMA_API_DEBUG) += debug.o 9 8 obj-$(CONFIG_SWIOTLB) += swiotlb.o