Commit de6c85bf authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

dma-mapping: clearly mark DMA ops as an architecture feature



DMA ops are a helper for architectures and not for drivers to override
the DMA implementation.

Unfortunately driver authors keep ignoring this.  Make the fact more
clear by renaming the symbol to ARCH_HAS_DMA_OPS and having the two drivers
overriding their dma_ops depend on that.  These drivers should probably be
marked broken, but we can give them a bit of a grace period for that.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> # for IPU6
Acked-by: default avatarRobin Murphy <robin.murphy@arm.com>
parent 92193b35
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -17,6 +17,15 @@ config CPU_MITIGATIONS
	def_bool y
endif

#
# Selected by architectures that need custom DMA operations for e.g. legacy
# IOMMUs not handled by dma-iommu.  Drivers must never select this symbol.
#
config ARCH_HAS_DMA_OPS
	depends on HAS_DMA
	select DMA_OPS_HELPERS
	bool

menu "General architecture-dependent options"

config ARCH_HAS_SUBPAGE_FAULTS
+1 −1
Original line number Diff line number Diff line
@@ -4,12 +4,12 @@ config ALPHA
	default y
	select ARCH_32BIT_USTAT_F_TINODE
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DMA_OPS if PCI
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_NO_PREEMPT
	select ARCH_NO_SG_CHAIN
	select ARCH_USE_CMPXCHG_LOCKREF
	select DMA_OPS if PCI
	select FORCE_PCI
	select PCI_DOMAINS if PCI
	select PCI_SYSCALL if PCI
+1 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ config ARM
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DEBUG_VIRTUAL if MMU
	select ARCH_HAS_DMA_ALLOC if MMU
	select ARCH_HAS_DMA_OPS
	select ARCH_HAS_DMA_WRITE_COMBINE if !ARM_DMA_MEM_BUFFERABLE
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_FORTIFY_SOURCE
@@ -54,7 +55,6 @@ config ARM
	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
	select DMA_DECLARE_COHERENT
	select DMA_GLOBAL_POOL if !MMU
	select DMA_OPS
	select DMA_NONCOHERENT_MMAP if MMU
	select EDAC_SUPPORT
	select EDAC_ATOMIC_SCRUB
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ config ARM64
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DEBUG_VIRTUAL
	select ARCH_HAS_DEBUG_VM_PGTABLE
	select ARCH_HAS_DMA_OPS if XEN
	select ARCH_HAS_DMA_PREP_COHERENT
	select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
	select ARCH_HAS_FAST_MULTIPLIER
+1 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ config MIPS
	select ARCH_HAS_CPU_FINALIZE_INIT
	select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
	select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
	select ARCH_HAS_DMA_OPS if MACH_JAZZ
	select ARCH_HAS_FORTIFY_SOURCE
	select ARCH_HAS_KCOV
	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
@@ -393,7 +394,6 @@ config MACH_JAZZ
	select ARC_PROMLIB
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select DMA_OPS
	select FW_ARC
	select FW_ARC32
	select ARCH_MAY_HAVE_PC_FDC
Loading