linux/drivers/dma
Sascha Hauer 1ec1e82f25 dmaengine: Add Freescale i.MX SDMA support
This patch adds support for the Freescale i.MX SDMA engine.

The SDMA engine is a scatter/gather DMA engine which is implemented
as a seperate coprocessor. SDMA needs its own firmware which is
requested using the standard request_firmware mechanism. The firmware
has different entry points for each peripheral type, so drivers
have to pass the peripheral type to the DMA engine which in turn
picks the correct firmware entry point from a table contained in
the firmware image itself.
The original Freescale code also supports support for transfering
data to the internal SRAM which needs different entry points to
the firmware. Support for this is currently not implemented. Also,
support for the ASRC (asymmetric sample rate converter) is skipped.

I took a very simple approach to implement dmaengine support. Only
a single descriptor is statically assigned to a each channel. This
means that transfers can't be queued up but only a single transfer
is in progress. This simplifies implementation a lot and is sufficient
for the usual device/memory transfers.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Linus Walleij <linus.ml.walleij@gmail.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-10-05 15:49:26 -07:00
..
ioat ioat2: catch and recover from broken vtd configurations v6 2010-08-04 14:18:17 -07:00
ipu DMAENGINE: extend the control command to include an arg 2010-05-17 16:30:42 -07:00
ppc4xx of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
Kconfig dmaengine: Add Freescale i.MX SDMA support 2010-10-05 15:49:26 -07:00
Makefile dmaengine: Add Freescale i.MX SDMA support 2010-10-05 15:49:26 -07:00
at_hdmac.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-08-09 21:00:07 -07:00
at_hdmac_regs.h at_hdmac: implement a private tx_list 2009-09-08 17:53:03 -07:00
coh901318.c DMAENGINE: add runtime slave control to COH 901 318 v3 2010-08-04 14:15:44 -07:00
coh901318_lli.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coh901318_lli.h tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
dmaengine.c dmaengine: add possibility for cyclic transfers 2010-10-05 15:49:26 -07:00
dmatest.c dma: dmatest: fix potential sign bug 2010-08-04 14:27:47 -07:00
dw_dmac.c DMAENGINE: extend the control command to include an arg 2010-05-17 16:30:42 -07:00
dw_dmac_regs.h dw_dmac: implement a private tx_list 2009-09-08 17:53:02 -07:00
fsldma.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
fsldma.h fsldma: major cleanups and fixes 2010-02-02 14:51:42 -07:00
imx-sdma.c dmaengine: Add Freescale i.MX SDMA support 2010-10-05 15:49:26 -07:00
intel_mid_dma.c intel_mid: Add Mrst & Mfld DMA Drivers 2010-07-27 23:32:57 -07:00
intel_mid_dma_regs.h intel_mid: Add Mrst & Mfld DMA Drivers 2010-07-27 23:32:57 -07:00
iop-adma.c Merge branch 'ioat' into dmaengine 2010-05-17 16:30:58 -07:00
iovlock.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mpc512x_dma.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mv_xor.c Merge branch 'ioat' into dmaengine 2010-05-17 16:30:58 -07:00
mv_xor.h mv_xor: implement a private tx_list 2009-09-08 17:53:03 -07:00
pch_dma.c DMAENGINE: pch_dma: kill another usage of __raw_{read|write}l 2010-08-04 22:08:45 -07:00
pl330.c DMA: PL330: Add dma api driver 2010-05-23 20:28:19 -07:00
shdma.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-31 13:14:26 +09:00
shdma.h dmaengine: shdma: Introduce include/linux/sh_dma.h 2010-03-23 17:20:06 +09:00
ste_dma40.c DMAENGINE: add runtime slave config to DMA40 v3 2010-08-04 14:14:05 -07:00
ste_dma40_ll.c DMAENGINE: ste_dma40: allocate LCLA dynamically 2010-06-22 18:01:55 -07:00
ste_dma40_ll.h DMAENGINE: ste_dma40: allocate LCLA dynamically 2010-06-22 18:01:55 -07:00
timb_dma.c drivers/dma: Eliminate a NULL pointer dereference 2010-07-01 02:27:35 -07:00
txx9dmac.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-05-21 17:05:46 -07:00
txx9dmac.h txx9dmac: implement a private tx_list 2009-09-08 17:53:03 -07:00