dmaengine: fsl-qdma: Add qDMA controller driver for Layerscape SoCs
NXP Queue DMA controller(qDMA) on Layerscape SoCs supports channel virtuallization by allowing DMA jobs to be enqueued into different command queues. Signed-off-by: Wen He <wen.he_1@nxp.com> Signed-off-by: Jiaheng Fan <jiaheng.fan@nxp.com> Signed-off-by: Peng Ma <peng.ma@nxp.com> Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
		
							parent
							
								
									a1ff82a9c1
								
							
						
					
					
						commit
						b092529e0a
					
				| @ -218,6 +218,20 @@ config FSL_EDMA | |||||||
| 	  multiplexing capability for DMA request sources(slot). | 	  multiplexing capability for DMA request sources(slot). | ||||||
| 	  This module can be found on Freescale Vybrid and LS-1 SoCs. | 	  This module can be found on Freescale Vybrid and LS-1 SoCs. | ||||||
| 
 | 
 | ||||||
|  | config FSL_QDMA | ||||||
|  |        tristate "NXP Layerscape qDMA engine support" | ||||||
|  |        depends on ARM || ARM64 | ||||||
|  |        select DMA_ENGINE | ||||||
|  |        select DMA_VIRTUAL_CHANNELS | ||||||
|  |        select DMA_ENGINE_RAID | ||||||
|  |        select ASYNC_TX_ENABLE_CHANNEL_SWITCH | ||||||
|  |        help | ||||||
|  |          Support the NXP Layerscape qDMA engine with command queue and legacy mode. | ||||||
|  |          Channel virtualization is supported through enqueuing of DMA jobs to, | ||||||
|  |          or dequeuing DMA jobs from, different work queues. | ||||||
|  |          This module can be found on NXP Layerscape SoCs. | ||||||
|  | 	  The qdma driver only work on  SoCs with a DPAA hardware block. | ||||||
|  | 
 | ||||||
| config FSL_RAID | config FSL_RAID | ||||||
|         tristate "Freescale RAID engine Support" |         tristate "Freescale RAID engine Support" | ||||||
|         depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH |         depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH | ||||||
|  | |||||||
| @ -33,6 +33,7 @@ obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o | |||||||
| obj-$(CONFIG_FSL_DMA) += fsldma.o | obj-$(CONFIG_FSL_DMA) += fsldma.o | ||||||
| obj-$(CONFIG_FSL_EDMA) += fsl-edma.o fsl-edma-common.o | obj-$(CONFIG_FSL_EDMA) += fsl-edma.o fsl-edma-common.o | ||||||
| obj-$(CONFIG_MCF_EDMA) += mcf-edma.o fsl-edma-common.o | obj-$(CONFIG_MCF_EDMA) += mcf-edma.o fsl-edma-common.o | ||||||
|  | obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o | ||||||
| obj-$(CONFIG_FSL_RAID) += fsl_raid.o | obj-$(CONFIG_FSL_RAID) += fsl_raid.o | ||||||
| obj-$(CONFIG_HSU_DMA) += hsu/ | obj-$(CONFIG_HSU_DMA) += hsu/ | ||||||
| obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o | obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o | ||||||
|  | |||||||
							
								
								
									
										1258
									
								
								drivers/dma/fsl-qdma.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1258
									
								
								drivers/dma/fsl-qdma.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user