hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/dma/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # DMA engine configuration
34 #
....@@ -14,19 +15,19 @@
1415 be empty in some cases.
1516
1617 config DMADEVICES_DEBUG
17
- bool "DMA Engine debugging"
18
- depends on DMADEVICES != n
19
- help
20
- This is an option for use by developers; most people should
21
- say N here. This enables DMA engine core and driver debugging.
18
+ bool "DMA Engine debugging"
19
+ depends on DMADEVICES != n
20
+ help
21
+ This is an option for use by developers; most people should
22
+ say N here. This enables DMA engine core and driver debugging.
2223
2324 config DMADEVICES_VDEBUG
24
- bool "DMA Engine verbose debugging"
25
- depends on DMADEVICES_DEBUG != n
26
- help
27
- This is an option for use by developers; most people should
28
- say N here. This enables deeper (more verbose) debugging of
29
- the DMA engine core and drivers.
25
+ bool "DMA Engine verbose debugging"
26
+ depends on DMADEVICES_DEBUG != n
27
+ help
28
+ This is an option for use by developers; most people should
29
+ say N here. This enables deeper (more verbose) debugging of
30
+ the DMA engine core and drivers.
3031
3132
3233 if DMADEVICES
....@@ -100,12 +101,13 @@
100101
101102 config AXI_DMAC
102103 tristate "Analog Devices AXI-DMAC DMA support"
103
- depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_SOCFPGA || COMPILE_TEST
104
+ depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_SOCFPGA || COMPILE_TEST
104105 select DMA_ENGINE
105106 select DMA_VIRTUAL_CHANNELS
107
+ select REGMAP_MMIO
106108 help
107109 Enable support for the Analog Devices AXI-DMAC peripheral. This DMA
108
- controller is often used in Analog Device's reference designs for FPGA
110
+ controller is often used in Analog Devices' reference designs for FPGA
109111 platforms.
110112
111113 config BCM_SBA_RAID
....@@ -133,12 +135,6 @@
133135 config DMA_BCM2835
134136 tristate "BCM2835 DMA engine support"
135137 depends on ARCH_BCM2835
136
- select DMA_ENGINE
137
- select DMA_VIRTUAL_CHANNELS
138
-
139
-config DMA_JZ4740
140
- tristate "JZ4740 DMA support"
141
- depends on MACH_JZ4740 || COMPILE_TEST
142138 select DMA_ENGINE
143139 select DMA_VIRTUAL_CHANNELS
144140
....@@ -203,7 +199,7 @@
203199 depends on FSL_SOC
204200 select DMA_ENGINE
205201 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
206
- ---help---
202
+ help
207203 Enable support for the Freescale Elo series DMA controllers.
208204 The Elo is the DMA controller on some mpc82xx and mpc83xx parts, the
209205 EloPlus is on mpc85xx and mpc86xx and Pxxx parts, and the Elo3 is on
....@@ -212,6 +208,7 @@
212208 config FSL_EDMA
213209 tristate "Freescale eDMA engine support"
214210 depends on OF
211
+ depends on HAS_IOMEM
215212 select DMA_ENGINE
216213 select DMA_VIRTUAL_CHANNELS
217214 help
....@@ -219,16 +216,39 @@
219216 multiplexing capability for DMA request sources(slot).
220217 This module can be found on Freescale Vybrid and LS-1 SoCs.
221218
219
+config FSL_QDMA
220
+ tristate "NXP Layerscape qDMA engine support"
221
+ depends on ARM || ARM64
222
+ select DMA_ENGINE
223
+ select DMA_VIRTUAL_CHANNELS
224
+ select DMA_ENGINE_RAID
225
+ select ASYNC_TX_ENABLE_CHANNEL_SWITCH
226
+ help
227
+ Support the NXP Layerscape qDMA engine with command queue and legacy mode.
228
+ Channel virtualization is supported through enqueuing of DMA jobs to,
229
+ or dequeuing DMA jobs from, different work queues.
230
+ This module can be found on NXP Layerscape SoCs.
231
+ The qdma driver only work on SoCs with a DPAA hardware block.
232
+
222233 config FSL_RAID
223
- tristate "Freescale RAID engine Support"
224
- depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH
225
- select DMA_ENGINE
226
- select DMA_ENGINE_RAID
227
- ---help---
228
- Enable support for Freescale RAID Engine. RAID Engine is
229
- available on some QorIQ SoCs (like P5020/P5040). It has
230
- the capability to offload memcpy, xor and pq computation
234
+ tristate "Freescale RAID engine Support"
235
+ depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH
236
+ select DMA_ENGINE
237
+ select DMA_ENGINE_RAID
238
+ help
239
+ Enable support for Freescale RAID Engine. RAID Engine is
240
+ available on some QorIQ SoCs (like P5020/P5040). It has
241
+ the capability to offload memcpy, xor and pq computation
231242 for raid5/6.
243
+
244
+config HISI_DMA
245
+ tristate "HiSilicon DMA Engine support"
246
+ depends on ARM64 || COMPILE_TEST
247
+ depends on PCI_MSI
248
+ select DMA_ENGINE
249
+ select DMA_VIRTUAL_CHANNELS
250
+ help
251
+ Support HiSilicon Kunpeng DMA engine.
232252
233253 config IMG_MDC_DMA
234254 tristate "IMG MDC support"
....@@ -258,11 +278,26 @@
258278
259279 config INTEL_IDMA64
260280 tristate "Intel integrated DMA 64-bit support"
281
+ depends on HAS_IOMEM
261282 select DMA_ENGINE
262283 select DMA_VIRTUAL_CHANNELS
263284 help
264285 Enable DMA support for Intel Low Power Subsystem such as found on
265286 Intel Skylake PCH.
287
+
288
+config INTEL_IDXD
289
+ tristate "Intel Data Accelerators support"
290
+ depends on PCI && X86_64 && !UML
291
+ depends on PCI_MSI
292
+ depends on SBITMAP
293
+ select DMA_ENGINE
294
+ help
295
+ Enable support for the Intel(R) data accelerators present
296
+ in Intel Xeon CPU.
297
+
298
+ Say Y if you have such a platform.
299
+
300
+ If unsure, say N.
266301
267302 config INTEL_IOATDMA
268303 tristate "Intel I/OAT DMA support"
....@@ -279,30 +314,12 @@
279314 If unsure, say N.
280315
281316 config INTEL_IOP_ADMA
282
- tristate "Intel IOP ADMA support"
283
- depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_IOP13XX
317
+ tristate "Intel IOP32x ADMA support"
318
+ depends on ARCH_IOP32X || COMPILE_TEST
284319 select DMA_ENGINE
285320 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
286321 help
287322 Enable support for the Intel(R) IOP Series RAID engines.
288
-
289
-config INTEL_MIC_X100_DMA
290
- tristate "Intel MIC X100 DMA Driver"
291
- depends on 64BIT && X86 && INTEL_MIC_BUS
292
- select DMA_ENGINE
293
- help
294
- This enables DMA support for the Intel Many Integrated Core
295
- (MIC) family of PCIe form factor coprocessor X100 devices that
296
- run a 64 bit Linux OS. This driver will be used by both MIC
297
- host and card drivers.
298
-
299
- If you are building host kernel with a MIC device or a card
300
- kernel for a MIC device, then say M (recommended) or Y, else
301
- say N. If unsure say N.
302
-
303
- More information about the Intel MIC family as well as the Linux
304
- OS and tools for MIC to use with this driver are available from
305
- <http://software.intel.com/en-us/mic-developer>.
306323
307324 config K3_DMA
308325 tristate "Hisilicon K3 DMA support"
....@@ -322,6 +339,37 @@
322339 Enable support for DMA on NXP LPC18xx/43xx platforms
323340 with PL080 and multiplexed DMA request lines.
324341
342
+config MCF_EDMA
343
+ tristate "Freescale eDMA engine support, ColdFire mcf5441x SoCs"
344
+ depends on M5441x || COMPILE_TEST
345
+ select DMA_ENGINE
346
+ select DMA_VIRTUAL_CHANNELS
347
+ help
348
+ Support the Freescale ColdFire eDMA engine, 64-channel
349
+ implementation that performs complex data transfers with
350
+ minimal intervention from a host processor.
351
+ This module can be found on Freescale ColdFire mcf5441x SoCs.
352
+
353
+config MILBEAUT_HDMAC
354
+ tristate "Milbeaut AHB DMA support"
355
+ depends on ARCH_MILBEAUT || COMPILE_TEST
356
+ depends on OF
357
+ select DMA_ENGINE
358
+ select DMA_VIRTUAL_CHANNELS
359
+ help
360
+ Say yes here to support the Socionext Milbeaut
361
+ HDMAC device.
362
+
363
+config MILBEAUT_XDMAC
364
+ tristate "Milbeaut AXI DMA support"
365
+ depends on ARCH_MILBEAUT || COMPILE_TEST
366
+ depends on OF
367
+ select DMA_ENGINE
368
+ select DMA_VIRTUAL_CHANNELS
369
+ help
370
+ Say yes here to support the Socionext Milbeaut
371
+ XDMAC device.
372
+
325373 config MMP_PDMA
326374 bool "MMP PDMA support"
327375 depends on ARCH_MMP || ARCH_PXA || COMPILE_TEST
....@@ -333,12 +381,10 @@
333381 bool "MMP Two-Channel DMA support"
334382 depends on ARCH_MMP || COMPILE_TEST
335383 select DMA_ENGINE
336
- select MMP_SRAM if ARCH_MMP
337384 select GENERIC_ALLOCATOR
338385 help
339386 Support the MMP Two-Channel DMA engine.
340387 This engine used for MMP Audio DMA and pxa910 SQU.
341
- It needs sram driver under mach-mmp.
342388
343389 config MOXART_DMA
344390 tristate "MOXART DMA support"
....@@ -354,7 +400,7 @@
354400 tristate "Freescale MPC512x built-in DMA engine support"
355401 depends on PPC_MPC512x || PPC_MPC831x
356402 select DMA_ENGINE
357
- ---help---
403
+ help
358404 Enable support for the Freescale MPC512x built-in DMA engine.
359405
360406 config MV_XOR
....@@ -363,7 +409,7 @@
363409 select DMA_ENGINE
364410 select DMA_ENGINE_RAID
365411 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
366
- ---help---
412
+ help
367413 Enable support for the Marvell XOR engine.
368414
369415 config MV_XOR_V2
....@@ -373,7 +419,7 @@
373419 select DMA_ENGINE_RAID
374420 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
375421 select GENERIC_MSI_IRQ_DOMAIN
376
- ---help---
422
+ help
377423 Enable support for the Marvell version 2 XOR engine.
378424
379425 This engine provides acceleration for copy, XOR and RAID6
....@@ -456,6 +502,15 @@
456502 platform. The internal DMA IP of all PXA variants is supported, with
457503 16 to 32 channels for peripheral to memory or memory to memory
458504 transfers.
505
+
506
+config PLX_DMA
507
+ tristate "PLX ExpressLane PEX Switch DMA Engine Support"
508
+ depends on PCI
509
+ select DMA_ENGINE
510
+ help
511
+ Some PLX ExpressLane PCI Switches support additional DMA engines.
512
+ These are exposed via extra functions on the switch's
513
+ upstream port. Each function exposes one DMA channel.
459514
460515 config SIRF_DMA
461516 tristate "CSR SiRFprimaII/SiRFmarco DMA support"
....@@ -546,8 +601,8 @@
546601 integrated in chips such as the Toshiba TX4927/38/39.
547602
548603 config TEGRA20_APB_DMA
549
- bool "NVIDIA Tegra20 APB DMA support"
550
- depends on ARCH_TEGRA
604
+ tristate "NVIDIA Tegra20 APB DMA support"
605
+ depends on ARCH_TEGRA || COMPILE_TEST
551606 select DMA_ENGINE
552607 help
553608 Support for the NVIDIA Tegra20 APB DMA controller driver. The
....@@ -559,7 +614,7 @@
559614
560615 config TEGRA210_ADMA
561616 tristate "NVIDIA Tegra210 ADMA support"
562
- depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST) && PM_CLK
617
+ depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST)
563618 select DMA_ENGINE
564619 select DMA_VIRTUAL_CHANNELS
565620 help
....@@ -576,6 +631,28 @@
576631 select DMA_ENGINE
577632 help
578633 Enable support for the Timberdale FPGA DMA engine.
634
+
635
+config UNIPHIER_MDMAC
636
+ tristate "UniPhier MIO DMAC"
637
+ depends on ARCH_UNIPHIER || COMPILE_TEST
638
+ depends on OF
639
+ select DMA_ENGINE
640
+ select DMA_VIRTUAL_CHANNELS
641
+ help
642
+ Enable support for the MIO DMAC (Media I/O DMA controller) on the
643
+ UniPhier platform. This DMA controller is used as the external
644
+ DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
645
+
646
+config UNIPHIER_XDMAC
647
+ tristate "UniPhier XDMAC support"
648
+ depends on ARCH_UNIPHIER || COMPILE_TEST
649
+ depends on OF
650
+ select DMA_ENGINE
651
+ select DMA_VIRTUAL_CHANNELS
652
+ help
653
+ Enable support for the XDMAC (external DMA controller) on the
654
+ UniPhier platform. This DMA controller can transfer data from
655
+ memory to memory, memory to peripheral and peripheral to memory.
579656
580657 config XGENE_DMA
581658 tristate "APM X-Gene DMA support"
....@@ -604,6 +681,10 @@
604681 destination address.
605682 AXI DMA engine provides high-bandwidth one dimensional direct
606683 memory access between memory and AXI4-Stream target peripherals.
684
+ AXI MCDMA engine provides high-bandwidth direct memory access
685
+ between memory and AXI4-Stream target peripherals. It provides
686
+ the scatter gather interface with multiple channels independent
687
+ configuration support.
607688
608689 config XILINX_ZYNQMP_DMA
609690 tristate "Xilinx ZynqMP DMA Engine"
....@@ -611,6 +692,17 @@
611692 select DMA_ENGINE
612693 help
613694 Enable support for Xilinx ZynqMP DMA controller.
695
+
696
+config XILINX_ZYNQMP_DPDMA
697
+ tristate "Xilinx DPDMA Engine"
698
+ depends on HAS_IOMEM && OF
699
+ select DMA_ENGINE
700
+ select DMA_VIRTUAL_CHANNELS
701
+ help
702
+ Enable support for Xilinx ZynqMP DisplayPort DMA. Choose this option
703
+ if you have a Xilinx ZynqMP SoC with a DisplayPort subsystem. The
704
+ driver provides the dmaengine required by the DisplayPort subsystem
705
+ display driver.
614706
615707 config ZX_DMA
616708 tristate "ZTE ZX DMA support"
....@@ -630,12 +722,18 @@
630722
631723 source "drivers/dma/dw/Kconfig"
632724
725
+source "drivers/dma/dw-edma/Kconfig"
726
+
633727 source "drivers/dma/hsu/Kconfig"
728
+
729
+source "drivers/dma/sf-pdma/Kconfig"
634730
635731 source "drivers/dma/sh/Kconfig"
636732
637733 source "drivers/dma/ti/Kconfig"
638734
735
+source "drivers/dma/fsl-dpaa2-qdma/Kconfig"
736
+
639737 # clients
640738 comment "DMA Clients"
641739 depends on DMA_ENGINE