aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/Kconfig
diff options
context:
space:
mode:
authorZhangfei Gao <zhangfei.gao@marvell.com>2012-09-02 23:03:45 -0400
committerVinod Koul <vinod.koul@linux.intel.com>2012-09-13 22:44:07 -0400
commitc8acd6aa6bed3c0fd7898202f4ebc534db9085f2 (patch)
treeb7d7b7b763717844832bf03678d71bf948617778 /drivers/dma/Kconfig
parentb5f14330590118e6a0659255476c0f24ab681e05 (diff)
dmaengine: mmp-pdma support
1. virtual channel vs. physical channel Virtual channel is managed by dmaengine Physical channel handling resource, such as irq Physical channel is alloced dynamically as descending priority, freed immediately when irq done. The availble highest priority physically channel will alwayes be alloced Issue pending list -> alloc highest dma physically channel available -> dma done -> free physically channel 2. list: running list & pending list submit: desc list -> pending list issue_pending_list: if (IDLE) pending list -> running list; free pending list (RUN) irq: free running list (IDLE) check pendlist -> pending list -> running list; free pending list (RUN) 3. irq: Each list generate one irq, calling callback One list may contain several desc chain, in such case, make sure only the last desc list generate irq. 4. async Submit will add desc chain to pending list, which can be multi-called If multi desc chain is submitted, only the last desc would generate irq -> call back If IDLE, issue_pending_list start pending_list, transforming pendlist to running list If RUN, irq will start pending list 5. test 5.1 pxa3xx_nand on pxa910 5.2 insmod dmatest.ko (threads_per_chan=y) By default drivers/dma/dmatest.c test every channel and test memcpy with 1 threads per channel Signed-off-by: Zhangfei Gao <zhangfei.gao@marvell.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'drivers/dma/Kconfig')
-rw-r--r--drivers/dma/Kconfig7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 03517191cb13..677cd6e4e1a1 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -302,6 +302,13 @@ config DMA_OMAP
302 select DMA_ENGINE 302 select DMA_ENGINE
303 select DMA_VIRTUAL_CHANNELS 303 select DMA_VIRTUAL_CHANNELS
304 304
305config MMP_PDMA
306 bool "MMP PDMA support"
307 depends on (ARCH_MMP || ARCH_PXA)
308 select DMA_ENGINE
309 help
310 Support the MMP PDMA engine for PXA and MMP platfrom.
311
305config DMA_ENGINE 312config DMA_ENGINE
306 bool 313 bool
307 314