]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
MIPS: make the default mips dma implementation optional
authorChristoph Hellwig <hch@lst.de>
Fri, 15 Jun 2018 11:08:38 +0000 (13:08 +0200)
committerPaul Burton <paul.burton@mips.com>
Sun, 24 Jun 2018 16:26:03 +0000 (09:26 -0700)
Octeon and loonson64 already don't use it at all, and we're going to
migrate more plaforms away from it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Patchwork: https://patchwork.linux-mips.org/patch/19536/
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: David Daney <david.daney@cavium.com>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Huacai Chen <chenhc@lemote.com>
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
arch/mips/Kconfig
arch/mips/include/asm/dma-mapping.h
arch/mips/jazz/Kconfig
arch/mips/loongson32/Kconfig
arch/mips/loongson64/Kconfig
arch/mips/mm/Makefile
arch/mips/pic32/Kconfig
arch/mips/txx9/Kconfig
arch/mips/vr41xx/Kconfig

index a7ecd785f8b9cdc13c65a873748ded30057e7b85..7c539a39c43e033dd927a1a1f8ddedc5dc1d3cfb 100644 (file)
@@ -77,6 +77,9 @@ config MIPS
        select SYSCTL_EXCEPTION_TRACE
        select VIRT_TO_BUS
 
+config MIPS_DMA_DEFAULT
+       bool
+
 menu "Machine selection"
 
 choice
@@ -98,6 +101,7 @@ config MIPS_GENERIC
        select IRQ_MIPS_CPU
        select LIBFDT
        select MIPS_CPU_SCACHE
+       select MIPS_DMA_DEFAULT
        select MIPS_GIC
        select MIPS_L1_CACHE_SHIFT_7
        select NO_EXCEPT_FILL
@@ -141,6 +145,7 @@ config MIPS_ALCHEMY
        select CEVT_R4K
        select CSRC_R4K
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select DMA_MAYBE_COHERENT       # Au1000,1500,1100 aren't, rest is
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -156,6 +161,7 @@ config AR7
        select CEVT_R4K
        select CSRC_R4K
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select NO_EXCEPT_FILL
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_MIPS32_R1
@@ -178,6 +184,7 @@ config ATH25
        select DMA_NONCOHERENT
        select IRQ_MIPS_CPU
        select IRQ_DOMAIN
+       select MIPS_DMA_DEFAULT
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -197,6 +204,7 @@ config ATH79
        select COMMON_CLK
        select CLKDEV_LOOKUP
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select MIPS_MACHINE
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_HAS_EARLY_PRINTK
@@ -223,6 +231,7 @@ config BMIPS_GENERIC
        select BCM7120_L2_IRQ
        select BRCMSTB_L2_IRQ
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select DMA_NONCOHERENT
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -253,6 +262,7 @@ config BCM47XX
        select HW_HAS_PCI
        select IRQ_MIPS_CPU
        select SYS_HAS_CPU_MIPS32_R1
+       select MIPS_DMA_DEFAULT
        select NO_EXCEPT_FILL
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -276,6 +286,7 @@ config BCM63XX
        select SYNC_R4K
        select DMA_NONCOHERENT
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_HAS_EARLY_PRINTK
@@ -298,6 +309,7 @@ config MIPS_COBALT
        select I8259
        select IRQ_MIPS_CPU
        select IRQ_GT641XX
+       select MIPS_DMA_DEFAULT
        select PCI_GT64XXX_PCI0
        select PCI
        select SYS_HAS_CPU_NEVADA
@@ -318,6 +330,7 @@ config MACH_DECSTATION
        select CPU_R4000_WORKAROUNDS if 64BIT
        select CPU_R4400_WORKAROUNDS if 64BIT
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select NO_IOPORT_MAP
        select IRQ_MIPS_CPU
        select SYS_HAS_CPU_R3000
@@ -377,6 +390,7 @@ config MACH_INGENIC
        select SYS_SUPPORTS_ZBOOT_UART16550
        select DMA_NONCOHERENT
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select PINCTRL
        select GPIOLIB
        select COMMON_CLK
@@ -391,6 +405,7 @@ config LANTIQ
        select IRQ_MIPS_CPU
        select CEVT_R4K
        select CSRC_R4K
+       select MIPS_DMA_DEFAULT
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_SUPPORTS_BIG_ENDIAN
@@ -418,6 +433,7 @@ config LASAT
        select SYS_HAS_EARLY_PRINTK
        select HW_HAS_PCI
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select PCI_GT64XXX_PCI0
        select MIPS_NILE4
        select R5000_CPU_SCACHE
@@ -464,6 +480,7 @@ config MACH_PISTACHIO
        select LIBFDT
        select MFD_SYSCON
        select MIPS_CPU_SCACHE
+       select MIPS_DMA_DEFAULT
        select MIPS_GIC
        select PINCTRL
        select REGULATOR
@@ -496,6 +513,7 @@ config MIPS_MALTA
        select GENERIC_ISA_DMA
        select HAVE_PCSPKR_PLATFORM
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select MIPS_GIC
        select HW_HAS_PCI
        select I8253
@@ -552,6 +570,7 @@ config NEC_MARKEINS
        bool "NEC EMMA2RH Mark-eins board"
        select SOC_EMMA2RH
        select HW_HAS_PCI
+       select MIPS_DMA_DEFAULT
        help
          This enables support for the NEC Electronics Mark-eins boards.
 
@@ -565,12 +584,14 @@ config MACH_VR41XX
 
 config NXP_STB220
        bool "NXP STB220 board"
+       select MIPS_DMA_DEFAULT
        select SOC_PNX833X
        help
         Support for NXP Semiconductors STB220 Development Board.
 
 config NXP_STB225
        bool "NXP 225 board"
+       select MIPS_DMA_DEFAULT
        select SOC_PNX833X
        select SOC_PNX8335
        help
@@ -590,6 +611,7 @@ config PMC_MSP
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_MIPS16
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select SERIAL_8250
        select SERIAL_8250_CONSOLE
        select USB_EHCI_BIG_ENDIAN_MMIO
@@ -607,6 +629,7 @@ config RALINK
        select BOOT_RAW
        select DMA_NONCOHERENT
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select USE_OF
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_HAS_CPU_MIPS32_R2
@@ -633,6 +656,7 @@ config SGI_IP22
        select I8259
        select IP22_CPU_SCACHE
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
        select SGI_HAS_I8042
        select SGI_HAS_INDYDOG
@@ -666,6 +690,7 @@ config SGI_IP27
        select FW_ARC64
        select BOOT_ELF64
        select DEFAULT_SGI_PARTITION
+       select MIPS_DMA_DEFAULT
        select SYS_HAS_EARLY_PRINTK
        select HW_HAS_PCI
        select NR_CPUS_DEFAULT_64
@@ -692,6 +717,7 @@ config SGI_IP28
        select DMA_NONCOHERENT
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select HW_HAS_EISA
        select I8253
        select I8259
@@ -728,6 +754,7 @@ config SGI_IP32
        select DMA_NONCOHERENT
        select HW_HAS_PCI
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select R5000_CPU_SCACHE
        select RM7000_CPU_SCACHE
        select SYS_HAS_CPU_R5000
@@ -742,6 +769,7 @@ config SGI_IP32
 config SIBYTE_CRHINE
        bool "Sibyte BCM91120C-CRhine"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select SIBYTE_BCM1120
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -751,6 +779,7 @@ config SIBYTE_CRHINE
 config SIBYTE_CARMEL
        bool "Sibyte BCM91120x-Carmel"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select SIBYTE_BCM1120
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -760,6 +789,7 @@ config SIBYTE_CARMEL
 config SIBYTE_CRHONE
        bool "Sibyte BCM91125C-CRhone"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select SIBYTE_BCM1125
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -770,6 +800,7 @@ config SIBYTE_CRHONE
 config SIBYTE_RHONE
        bool "Sibyte BCM91125E-Rhone"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select SIBYTE_BCM1125H
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -780,6 +811,7 @@ config SIBYTE_SWARM
        bool "Sibyte BCM91250A-SWARM"
        select BOOT_ELF32
        select HAVE_PATA_PLATFORM
+       select MIPS_DMA_DEFAULT
        select SIBYTE_SB1250
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -792,6 +824,7 @@ config SIBYTE_LITTLESUR
        bool "Sibyte BCM91250C2-LittleSur"
        select BOOT_ELF32
        select HAVE_PATA_PLATFORM
+       select MIPS_DMA_DEFAULT
        select SIBYTE_SB1250
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -802,6 +835,7 @@ config SIBYTE_LITTLESUR
 config SIBYTE_SENTOSA
        bool "Sibyte BCM91250E-Sentosa"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select SIBYTE_SB1250
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_SB1
@@ -811,6 +845,7 @@ config SIBYTE_SENTOSA
 config SIBYTE_BIGSUR
        bool "Sibyte BCM91480B-BigSur"
        select BOOT_ELF32
+       select MIPS_DMA_DEFAULT
        select NR_CPUS_DEFAULT_4
        select SIBYTE_BCM1x80
        select SWAP_IO_SPACE
@@ -841,6 +876,7 @@ config SNI_RM
        select I8253
        select I8259
        select ISA
+       select MIPS_DMA_DEFAULT
        select SWAP_IO_SPACE if CPU_BIG_ENDIAN
        select SYS_HAS_CPU_R4X00
        select SYS_HAS_CPU_R5000
@@ -871,6 +907,7 @@ config MIKROTIK_RB532
        select DMA_NONCOHERENT
        select HW_HAS_PCI
        select IRQ_MIPS_CPU
+       select MIPS_DMA_DEFAULT
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -929,6 +966,7 @@ config NLM_XLR_BOARD
        select SYS_HAS_CPU_XLR
        select SYS_SUPPORTS_SMP
        select HW_HAS_PCI
+       select MIPS_DMA_DEFAULT
        select SWAP_IO_SPACE
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
@@ -955,6 +993,7 @@ config NLM_XLP_BOARD
        select SYS_HAS_CPU_XLP
        select SYS_SUPPORTS_SMP
        select HW_HAS_PCI
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
        select PHYS_ADDR_T_64BIT
@@ -980,6 +1019,7 @@ config MIPS_PARAVIRT
        bool "Para-Virtualized guest system"
        select CEVT_R4K
        select CSRC_R4K
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
index f24b052ec74000f75098bed4ed4be044af2b7ec2..eaf3d9054104ac01328a6e6f2b83e640abba32a2 100644 (file)
@@ -17,8 +17,10 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
 {
 #ifdef CONFIG_SWIOTLB
        return &mips_swiotlb_ops;
-#else
+#elif defined(CONFIG_MIPS_DMA_DEFAULT)
        return &mips_default_dma_map_ops;
+#else
+       return NULL;
 #endif
 }
 
index 06838f80a5d7cacea731856ddda01244037636ec..d3ae3e0356f68fba6bc1486bef68de192d89b04c 100644 (file)
@@ -3,6 +3,7 @@ config ACER_PICA_61
        bool "Support for Acer PICA 1 chipset"
        depends on MACH_JAZZ
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_LITTLE_ENDIAN
        help
          This is a machine with a R4400 133/150 MHz CPU. To compile a Linux
@@ -14,6 +15,7 @@ config MIPS_MAGNUM_4000
        bool "Support for MIPS Magnum 4000"
        depends on MACH_JAZZ
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_LITTLE_ENDIAN
        help
@@ -26,6 +28,7 @@ config OLIVETTI_M700
        bool "Support for Olivetti M700-10"
        depends on MACH_JAZZ
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select SYS_SUPPORTS_LITTLE_ENDIAN
        help
          This is a machine with a R4000 100 MHz CPU. To compile a Linux
index 462b126f45aa7495a7e58a9be7d3038b228c7731..7a69a6c0ce222ac418a00bda43f339f6cbe1de66 100644 (file)
@@ -10,6 +10,7 @@ config LOONGSON1_LS1B
        select CSRC_R4K if !MIPS_EXTERNAL_TIMER
        select SYS_HAS_CPU_LOONGSON1B
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select BOOT_ELF32
        select IRQ_MIPS_CPU
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -26,6 +27,7 @@ config LOONGSON1_LS1C
        select CSRC_R4K if !MIPS_EXTERNAL_TIMER
        select SYS_HAS_CPU_LOONGSON1C
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select BOOT_ELF32
        select IRQ_MIPS_CPU
        select SYS_SUPPORTS_32BIT_KERNEL
index c79e6a565572f35668608e877fece23f9f3c0f46..dbd2a9f9f9a9822e3a80fa630142a6919b3d0324 100644 (file)
@@ -13,6 +13,7 @@ config LEMOTE_FULOONG2E
        select CSRC_R4K
        select SYS_HAS_CPU_LOONGSON2E
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select BOOT_ELF32
        select BOARD_SCACHE
        select HW_HAS_PCI
@@ -44,6 +45,7 @@ config LEMOTE_MACH2F
        select CS5536
        select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
        select HAVE_CLK
        select HW_HAS_PCI
index b87e4258fd782da6215e87a291738911e1e702bf..038bfed34946141ed32788f28437321a9231f823 100644 (file)
@@ -3,7 +3,7 @@
 # Makefile for the Linux/MIPS-specific parts of the memory manager.
 #
 
-obj-y                          += cache.o dma-default.o extable.o fault.o \
+obj-y                          += cache.o extable.o fault.o \
                                   gup.o init.o mmap.o page.o page-funcs.o \
                                   pgtable.o tlbex.o tlbex-fault.o tlb-funcs.o
 
@@ -17,6 +17,7 @@ obj-$(CONFIG_32BIT)           += ioremap.o pgtable-32.o
 obj-$(CONFIG_64BIT)            += pgtable-64.o
 obj-$(CONFIG_HIGHMEM)          += highmem.o
 obj-$(CONFIG_HUGETLB_PAGE)     += hugetlbpage.o
+obj-$(CONFIG_MIPS_DMA_DEFAULT) += dma-default.o
 obj-$(CONFIG_SWIOTLB)          += dma-swiotlb.o
 
 obj-$(CONFIG_CPU_R4K_CACHE_TLB) += c-r4k.o cex-gen.o tlb-r4k.o
index e284e89183cc56027cd144829f069e048750fbc7..7feb7359b05bf334fee2117b49442b0323b0db00 100644 (file)
@@ -11,6 +11,7 @@ config PIC32MZDA
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
index d2509c93f0ee711879007542211fae8b58145be4..9dfda3e90348e48613b2390e6c28c0f290a959a2 100644 (file)
@@ -16,6 +16,7 @@ config MACH_TX49XX
 config MACH_TXX9
        bool
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select SWAP_IO_SPACE
        select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
index 992c988b83b087ce5a6686d43b820da6a71d8eb5..cc69b2f663fa8df215f7e90b059fb4188a0dfcbb 100644 (file)
@@ -9,6 +9,7 @@ config CASIO_E55
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select IRQ_MIPS_CPU
        select ISA
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -19,6 +20,7 @@ config IBM_WORKPAD
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select IRQ_MIPS_CPU
        select ISA
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -29,6 +31,7 @@ config TANBAC_TB022X
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select IRQ_MIPS_CPU
        select HW_HAS_PCI
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -45,6 +48,7 @@ config VICTOR_MPC30X
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select IRQ_MIPS_CPU
        select HW_HAS_PCI
        select PCI_VR41XX
@@ -56,6 +60,7 @@ config ZAO_CAPCELLA
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
+       select MIPS_DMA_DEFAULT
        select IRQ_MIPS_CPU
        select HW_HAS_PCI
        select PCI_VR41XX