dmaengine: omap-dma: Support for LinkedList transfer of slave_sg
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 20 Jul 2016 08:50:32 +0000 (11:50 +0300)
committerVinod Koul <vinod.koul@intel.com>
Wed, 10 Aug 2016 17:29:13 +0000 (22:59 +0530)
commit1c2e8e6b6429688e6b1096db1a89a60faaa6d8dc
tree3eecc7c4eab678e3da49696126dfe056019b26d7
parentcb7958dfa9bc4a69f94eaa8bbc9d21a291a2a560
dmaengine: omap-dma: Support for LinkedList transfer of slave_sg

sDMA in OMAP3630 or newer SoC have support for LinkedList transfer. When
LinkedList or Descriptor load feature is present we can create the
descriptors for each and program sDMA to walk through the list of
descriptors instead of the current way of sDMA stop, sDMA reconfiguration
and sDMA start after each SG transfer.
By using LinkedList transfer in sDMA the number of DMA interrupts will
decrease dramatically.
Booting up the board with filesystem on SD card for example:
W/o LinkedList support:
 27:       4436          0     WUGEN  13 Level     omap-dma-engine

Same board/filesystem with this patch:
 27:       1027          0     WUGEN  13 Level     omap-dma-engine

Or copying files from SD card to eMCC:
2.1G    /usr/
232001

W/o LinkedList we see ~761069 DMA interrupts.
With LinkedList support it is down to ~269314 DMA interrupts.

With the decreased DMA interrupt number the CPU load is dropping
significantly as well.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/omap-dma.c