Skip to content

Commit 3369ddb

Browse files
Christoph Hellwigpaulburton
authored andcommitted
MIPS: make the default mips dma implementation optional
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
1 parent d3b83dc commit 3369ddb

File tree

9 files changed

+59
-2
lines changed

9 files changed

+59
-2
lines changed

arch/mips/Kconfig

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ config MIPS
7777
select SYSCTL_EXCEPTION_TRACE
7878
select VIRT_TO_BUS
7979

80+
config MIPS_DMA_DEFAULT
81+
bool
82+
8083
menu "Machine selection"
8184

8285
choice
@@ -98,6 +101,7 @@ config MIPS_GENERIC
98101
select IRQ_MIPS_CPU
99102
select LIBFDT
100103
select MIPS_CPU_SCACHE
104+
select MIPS_DMA_DEFAULT
101105
select MIPS_GIC
102106
select MIPS_L1_CACHE_SHIFT_7
103107
select NO_EXCEPT_FILL
@@ -141,6 +145,7 @@ config MIPS_ALCHEMY
141145
select CEVT_R4K
142146
select CSRC_R4K
143147
select IRQ_MIPS_CPU
148+
select MIPS_DMA_DEFAULT
144149
select DMA_MAYBE_COHERENT # Au1000,1500,1100 aren't, rest is
145150
select SYS_HAS_CPU_MIPS32_R1
146151
select SYS_SUPPORTS_32BIT_KERNEL
@@ -156,6 +161,7 @@ config AR7
156161
select CEVT_R4K
157162
select CSRC_R4K
158163
select IRQ_MIPS_CPU
164+
select MIPS_DMA_DEFAULT
159165
select NO_EXCEPT_FILL
160166
select SWAP_IO_SPACE
161167
select SYS_HAS_CPU_MIPS32_R1
@@ -178,6 +184,7 @@ config ATH25
178184
select DMA_NONCOHERENT
179185
select IRQ_MIPS_CPU
180186
select IRQ_DOMAIN
187+
select MIPS_DMA_DEFAULT
181188
select SYS_HAS_CPU_MIPS32_R1
182189
select SYS_SUPPORTS_BIG_ENDIAN
183190
select SYS_SUPPORTS_32BIT_KERNEL
@@ -197,6 +204,7 @@ config ATH79
197204
select COMMON_CLK
198205
select CLKDEV_LOOKUP
199206
select IRQ_MIPS_CPU
207+
select MIPS_DMA_DEFAULT
200208
select MIPS_MACHINE
201209
select SYS_HAS_CPU_MIPS32_R2
202210
select SYS_HAS_EARLY_PRINTK
@@ -223,6 +231,7 @@ config BMIPS_GENERIC
223231
select BCM7120_L2_IRQ
224232
select BRCMSTB_L2_IRQ
225233
select IRQ_MIPS_CPU
234+
select MIPS_DMA_DEFAULT
226235
select DMA_NONCOHERENT
227236
select SYS_SUPPORTS_32BIT_KERNEL
228237
select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -253,6 +262,7 @@ config BCM47XX
253262
select HW_HAS_PCI
254263
select IRQ_MIPS_CPU
255264
select SYS_HAS_CPU_MIPS32_R1
265+
select MIPS_DMA_DEFAULT
256266
select NO_EXCEPT_FILL
257267
select SYS_SUPPORTS_32BIT_KERNEL
258268
select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -276,6 +286,7 @@ config BCM63XX
276286
select SYNC_R4K
277287
select DMA_NONCOHERENT
278288
select IRQ_MIPS_CPU
289+
select MIPS_DMA_DEFAULT
279290
select SYS_SUPPORTS_32BIT_KERNEL
280291
select SYS_SUPPORTS_BIG_ENDIAN
281292
select SYS_HAS_EARLY_PRINTK
@@ -298,6 +309,7 @@ config MIPS_COBALT
298309
select I8259
299310
select IRQ_MIPS_CPU
300311
select IRQ_GT641XX
312+
select MIPS_DMA_DEFAULT
301313
select PCI_GT64XXX_PCI0
302314
select PCI
303315
select SYS_HAS_CPU_NEVADA
@@ -318,6 +330,7 @@ config MACH_DECSTATION
318330
select CPU_R4000_WORKAROUNDS if 64BIT
319331
select CPU_R4400_WORKAROUNDS if 64BIT
320332
select DMA_NONCOHERENT
333+
select MIPS_DMA_DEFAULT
321334
select NO_IOPORT_MAP
322335
select IRQ_MIPS_CPU
323336
select SYS_HAS_CPU_R3000
@@ -377,6 +390,7 @@ config MACH_INGENIC
377390
select SYS_SUPPORTS_ZBOOT_UART16550
378391
select DMA_NONCOHERENT
379392
select IRQ_MIPS_CPU
393+
select MIPS_DMA_DEFAULT
380394
select PINCTRL
381395
select GPIOLIB
382396
select COMMON_CLK
@@ -391,6 +405,7 @@ config LANTIQ
391405
select IRQ_MIPS_CPU
392406
select CEVT_R4K
393407
select CSRC_R4K
408+
select MIPS_DMA_DEFAULT
394409
select SYS_HAS_CPU_MIPS32_R1
395410
select SYS_HAS_CPU_MIPS32_R2
396411
select SYS_SUPPORTS_BIG_ENDIAN
@@ -418,6 +433,7 @@ config LASAT
418433
select SYS_HAS_EARLY_PRINTK
419434
select HW_HAS_PCI
420435
select IRQ_MIPS_CPU
436+
select MIPS_DMA_DEFAULT
421437
select PCI_GT64XXX_PCI0
422438
select MIPS_NILE4
423439
select R5000_CPU_SCACHE
@@ -464,6 +480,7 @@ config MACH_PISTACHIO
464480
select LIBFDT
465481
select MFD_SYSCON
466482
select MIPS_CPU_SCACHE
483+
select MIPS_DMA_DEFAULT
467484
select MIPS_GIC
468485
select PINCTRL
469486
select REGULATOR
@@ -496,6 +513,7 @@ config MIPS_MALTA
496513
select GENERIC_ISA_DMA
497514
select HAVE_PCSPKR_PLATFORM
498515
select IRQ_MIPS_CPU
516+
select MIPS_DMA_DEFAULT
499517
select MIPS_GIC
500518
select HW_HAS_PCI
501519
select I8253
@@ -552,6 +570,7 @@ config NEC_MARKEINS
552570
bool "NEC EMMA2RH Mark-eins board"
553571
select SOC_EMMA2RH
554572
select HW_HAS_PCI
573+
select MIPS_DMA_DEFAULT
555574
help
556575
This enables support for the NEC Electronics Mark-eins boards.
557576

@@ -565,12 +584,14 @@ config MACH_VR41XX
565584

566585
config NXP_STB220
567586
bool "NXP STB220 board"
587+
select MIPS_DMA_DEFAULT
568588
select SOC_PNX833X
569589
help
570590
Support for NXP Semiconductors STB220 Development Board.
571591

572592
config NXP_STB225
573593
bool "NXP 225 board"
594+
select MIPS_DMA_DEFAULT
574595
select SOC_PNX833X
575596
select SOC_PNX8335
576597
help
@@ -590,6 +611,7 @@ config PMC_MSP
590611
select SYS_SUPPORTS_BIG_ENDIAN
591612
select SYS_SUPPORTS_MIPS16
592613
select IRQ_MIPS_CPU
614+
select MIPS_DMA_DEFAULT
593615
select SERIAL_8250
594616
select SERIAL_8250_CONSOLE
595617
select USB_EHCI_BIG_ENDIAN_MMIO
@@ -607,6 +629,7 @@ config RALINK
607629
select BOOT_RAW
608630
select DMA_NONCOHERENT
609631
select IRQ_MIPS_CPU
632+
select MIPS_DMA_DEFAULT
610633
select USE_OF
611634
select SYS_HAS_CPU_MIPS32_R1
612635
select SYS_HAS_CPU_MIPS32_R2
@@ -633,6 +656,7 @@ config SGI_IP22
633656
select I8259
634657
select IP22_CPU_SCACHE
635658
select IRQ_MIPS_CPU
659+
select MIPS_DMA_DEFAULT
636660
select GENERIC_ISA_DMA_SUPPORT_BROKEN
637661
select SGI_HAS_I8042
638662
select SGI_HAS_INDYDOG
@@ -666,6 +690,7 @@ config SGI_IP27
666690
select FW_ARC64
667691
select BOOT_ELF64
668692
select DEFAULT_SGI_PARTITION
693+
select MIPS_DMA_DEFAULT
669694
select SYS_HAS_EARLY_PRINTK
670695
select HW_HAS_PCI
671696
select NR_CPUS_DEFAULT_64
@@ -692,6 +717,7 @@ config SGI_IP28
692717
select DMA_NONCOHERENT
693718
select GENERIC_ISA_DMA_SUPPORT_BROKEN
694719
select IRQ_MIPS_CPU
720+
select MIPS_DMA_DEFAULT
695721
select HW_HAS_EISA
696722
select I8253
697723
select I8259
@@ -728,6 +754,7 @@ config SGI_IP32
728754
select DMA_NONCOHERENT
729755
select HW_HAS_PCI
730756
select IRQ_MIPS_CPU
757+
select MIPS_DMA_DEFAULT
731758
select R5000_CPU_SCACHE
732759
select RM7000_CPU_SCACHE
733760
select SYS_HAS_CPU_R5000
@@ -742,6 +769,7 @@ config SGI_IP32
742769
config SIBYTE_CRHINE
743770
bool "Sibyte BCM91120C-CRhine"
744771
select BOOT_ELF32
772+
select MIPS_DMA_DEFAULT
745773
select SIBYTE_BCM1120
746774
select SWAP_IO_SPACE
747775
select SYS_HAS_CPU_SB1
@@ -751,6 +779,7 @@ config SIBYTE_CRHINE
751779
config SIBYTE_CARMEL
752780
bool "Sibyte BCM91120x-Carmel"
753781
select BOOT_ELF32
782+
select MIPS_DMA_DEFAULT
754783
select SIBYTE_BCM1120
755784
select SWAP_IO_SPACE
756785
select SYS_HAS_CPU_SB1
@@ -760,6 +789,7 @@ config SIBYTE_CARMEL
760789
config SIBYTE_CRHONE
761790
bool "Sibyte BCM91125C-CRhone"
762791
select BOOT_ELF32
792+
select MIPS_DMA_DEFAULT
763793
select SIBYTE_BCM1125
764794
select SWAP_IO_SPACE
765795
select SYS_HAS_CPU_SB1
@@ -770,6 +800,7 @@ config SIBYTE_CRHONE
770800
config SIBYTE_RHONE
771801
bool "Sibyte BCM91125E-Rhone"
772802
select BOOT_ELF32
803+
select MIPS_DMA_DEFAULT
773804
select SIBYTE_BCM1125H
774805
select SWAP_IO_SPACE
775806
select SYS_HAS_CPU_SB1
@@ -780,6 +811,7 @@ config SIBYTE_SWARM
780811
bool "Sibyte BCM91250A-SWARM"
781812
select BOOT_ELF32
782813
select HAVE_PATA_PLATFORM
814+
select MIPS_DMA_DEFAULT
783815
select SIBYTE_SB1250
784816
select SWAP_IO_SPACE
785817
select SYS_HAS_CPU_SB1
@@ -792,6 +824,7 @@ config SIBYTE_LITTLESUR
792824
bool "Sibyte BCM91250C2-LittleSur"
793825
select BOOT_ELF32
794826
select HAVE_PATA_PLATFORM
827+
select MIPS_DMA_DEFAULT
795828
select SIBYTE_SB1250
796829
select SWAP_IO_SPACE
797830
select SYS_HAS_CPU_SB1
@@ -802,6 +835,7 @@ config SIBYTE_LITTLESUR
802835
config SIBYTE_SENTOSA
803836
bool "Sibyte BCM91250E-Sentosa"
804837
select BOOT_ELF32
838+
select MIPS_DMA_DEFAULT
805839
select SIBYTE_SB1250
806840
select SWAP_IO_SPACE
807841
select SYS_HAS_CPU_SB1
@@ -811,6 +845,7 @@ config SIBYTE_SENTOSA
811845
config SIBYTE_BIGSUR
812846
bool "Sibyte BCM91480B-BigSur"
813847
select BOOT_ELF32
848+
select MIPS_DMA_DEFAULT
814849
select NR_CPUS_DEFAULT_4
815850
select SIBYTE_BCM1x80
816851
select SWAP_IO_SPACE
@@ -841,6 +876,7 @@ config SNI_RM
841876
select I8253
842877
select I8259
843878
select ISA
879+
select MIPS_DMA_DEFAULT
844880
select SWAP_IO_SPACE if CPU_BIG_ENDIAN
845881
select SYS_HAS_CPU_R4X00
846882
select SYS_HAS_CPU_R5000
@@ -871,6 +907,7 @@ config MIKROTIK_RB532
871907
select DMA_NONCOHERENT
872908
select HW_HAS_PCI
873909
select IRQ_MIPS_CPU
910+
select MIPS_DMA_DEFAULT
874911
select SYS_HAS_CPU_MIPS32_R1
875912
select SYS_SUPPORTS_32BIT_KERNEL
876913
select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -929,6 +966,7 @@ config NLM_XLR_BOARD
929966
select SYS_HAS_CPU_XLR
930967
select SYS_SUPPORTS_SMP
931968
select HW_HAS_PCI
969+
select MIPS_DMA_DEFAULT
932970
select SWAP_IO_SPACE
933971
select SYS_SUPPORTS_32BIT_KERNEL
934972
select SYS_SUPPORTS_64BIT_KERNEL
@@ -955,6 +993,7 @@ config NLM_XLP_BOARD
955993
select SYS_HAS_CPU_XLP
956994
select SYS_SUPPORTS_SMP
957995
select HW_HAS_PCI
996+
select MIPS_DMA_DEFAULT
958997
select SYS_SUPPORTS_32BIT_KERNEL
959998
select SYS_SUPPORTS_64BIT_KERNEL
960999
select PHYS_ADDR_T_64BIT
@@ -980,6 +1019,7 @@ config MIPS_PARAVIRT
9801019
bool "Para-Virtualized guest system"
9811020
select CEVT_R4K
9821021
select CSRC_R4K
1022+
select MIPS_DMA_DEFAULT
9831023
select SYS_SUPPORTS_64BIT_KERNEL
9841024
select SYS_SUPPORTS_32BIT_KERNEL
9851025
select SYS_SUPPORTS_BIG_ENDIAN

arch/mips/include/asm/dma-mapping.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
1717
{
1818
#ifdef CONFIG_SWIOTLB
1919
return &mips_swiotlb_ops;
20-
#else
20+
#elif defined(CONFIG_MIPS_DMA_DEFAULT)
2121
return &mips_default_dma_map_ops;
22+
#else
23+
return NULL;
2224
#endif
2325
}
2426

arch/mips/jazz/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ config ACER_PICA_61
33
bool "Support for Acer PICA 1 chipset"
44
depends on MACH_JAZZ
55
select DMA_NONCOHERENT
6+
select MIPS_DMA_DEFAULT
67
select SYS_SUPPORTS_LITTLE_ENDIAN
78
help
89
This is a machine with a R4400 133/150 MHz CPU. To compile a Linux
@@ -14,6 +15,7 @@ config MIPS_MAGNUM_4000
1415
bool "Support for MIPS Magnum 4000"
1516
depends on MACH_JAZZ
1617
select DMA_NONCOHERENT
18+
select MIPS_DMA_DEFAULT
1719
select SYS_SUPPORTS_BIG_ENDIAN
1820
select SYS_SUPPORTS_LITTLE_ENDIAN
1921
help
@@ -26,6 +28,7 @@ config OLIVETTI_M700
2628
bool "Support for Olivetti M700-10"
2729
depends on MACH_JAZZ
2830
select DMA_NONCOHERENT
31+
select MIPS_DMA_DEFAULT
2932
select SYS_SUPPORTS_LITTLE_ENDIAN
3033
help
3134
This is a machine with a R4000 100 MHz CPU. To compile a Linux

arch/mips/loongson32/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ config LOONGSON1_LS1B
1010
select CSRC_R4K if !MIPS_EXTERNAL_TIMER
1111
select SYS_HAS_CPU_LOONGSON1B
1212
select DMA_NONCOHERENT
13+
select MIPS_DMA_DEFAULT
1314
select BOOT_ELF32
1415
select IRQ_MIPS_CPU
1516
select SYS_SUPPORTS_32BIT_KERNEL
@@ -26,6 +27,7 @@ config LOONGSON1_LS1C
2627
select CSRC_R4K if !MIPS_EXTERNAL_TIMER
2728
select SYS_HAS_CPU_LOONGSON1C
2829
select DMA_NONCOHERENT
30+
select MIPS_DMA_DEFAULT
2931
select BOOT_ELF32
3032
select IRQ_MIPS_CPU
3133
select SYS_SUPPORTS_32BIT_KERNEL

arch/mips/loongson64/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ config LEMOTE_FULOONG2E
1313
select CSRC_R4K
1414
select SYS_HAS_CPU_LOONGSON2E
1515
select DMA_NONCOHERENT
16+
select MIPS_DMA_DEFAULT
1617
select BOOT_ELF32
1718
select BOARD_SCACHE
1819
select HW_HAS_PCI
@@ -44,6 +45,7 @@ config LEMOTE_MACH2F
4445
select CS5536
4546
select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
4647
select DMA_NONCOHERENT
48+
select MIPS_DMA_DEFAULT
4749
select GENERIC_ISA_DMA_SUPPORT_BROKEN
4850
select HAVE_CLK
4951
select HW_HAS_PCI

arch/mips/mm/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Makefile for the Linux/MIPS-specific parts of the memory manager.
44
#
55

6-
obj-y += cache.o dma-default.o extable.o fault.o \
6+
obj-y += cache.o extable.o fault.o \
77
gup.o init.o mmap.o page.o page-funcs.o \
88
pgtable.o tlbex.o tlbex-fault.o tlb-funcs.o
99

@@ -17,6 +17,7 @@ obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o
1717
obj-$(CONFIG_64BIT) += pgtable-64.o
1818
obj-$(CONFIG_HIGHMEM) += highmem.o
1919
obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
20+
obj-$(CONFIG_MIPS_DMA_DEFAULT) += dma-default.o
2021
obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o
2122

2223
obj-$(CONFIG_CPU_R4K_CACHE_TLB) += c-r4k.o cex-gen.o tlb-r4k.o

arch/mips/pic32/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ config PIC32MZDA
1111
select CEVT_R4K
1212
select CSRC_R4K
1313
select DMA_NONCOHERENT
14+
select MIPS_DMA_DEFAULT
1415
select SYS_HAS_CPU_MIPS32_R2
1516
select SYS_HAS_EARLY_PRINTK
1617
select SYS_SUPPORTS_32BIT_KERNEL

0 commit comments

Comments
 (0)