kernel-fxtec-pro1x/drivers/dma
Joel Fernandes b267b3bc1e dma: edma: Leave linked to Null slot instead of DUMMY slot
Dummy slot has been used as a way for missed-events not to be
reported as missing. This has been particularly troublesome for cases
where we might want to temporarily pause all incoming events.

For EDMA DMAC, there is no way to do any such pausing of events as
the occurence of the "next" event is not software controlled.
Using "edma_pause" in IRQ handlers doesn't help as by then the event
in concern from the slave is already missed.

Linking a dummy slot, is seen to absorb these events which we didn't
want to miss. So we don't link to dummy, but instead leave it linked
to NULL set, allow an error condition and detect the channel that
missed it.

Consider the case where we have a scatter-list like:
SG1->SG2->SG3->SG4->SG5->SG6->Null

For ex, for a MAX_NR_SG of 2, earlier we were splitting this as:
SG1->SG2->Null
SG3->SG4->Null
SG5->SG6->Null

Now we split it as
SG1->SG2->Null
SG3->SG4->Null
SG5->SG6->Dummy

This approach results in lesser unwanted interrupts that occur
for the last list split. The Dummy slot has the property of not
raising an error condition if events are missed unlike the Null
slot. We are OK with this as we're done with processing the
whole list once we reach Dummy.

Signed-off-by: Joel Fernandes <joelf@ti.com>
[modifed duplicate s-o-b & patch title]
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2013-09-04 18:38:46 +05:30
..
bestcomm
dw dma: dw: return DMA_PAUSED only if cookie status is DMA_IN_PROGRESS 2013-08-05 09:32:26 +05:30
ioat drivers/dma: remove unused support for MEMSET operations 2013-07-03 16:07:42 -07:00
ipu dma: ipu: remove unnecessary platform_set_drvdata() 2013-08-25 14:37:13 +05:30
ppc4xx Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-07-07 11:11:43 -07:00
sh Merge branch 'topic/sh' into for-linus 2013-09-02 17:42:35 +05:30
acpi-dma.c acpi-dma: remove ugly conversion 2013-08-25 16:43:45 +05:30
amba-pl08x.c dmaengine: PL08x: Add cyclic transfer support 2013-09-02 11:49:56 +05:30
at_hdmac.c dmaengine: at_hdmac: prepare clk before calling enable 2013-07-05 11:40:57 +05:30
at_hdmac_regs.h DMA: AT91: Get residual bytes in dma buffer 2013-07-05 11:40:31 +05:30
coh901318.c
coh901318.h
coh901318_lli.c
dma-jz4740.c MIPS: jz4740: Remove custom DMA API 2013-07-05 11:40:52 +05:30
dmaengine.c Merge branch 'topic/of' into for-linus 2013-09-02 17:40:46 +05:30
dmaengine.h
dmatest.c
edma.c dma: edma: Leave linked to Null slot instead of DUMMY slot 2013-09-04 18:38:46 +05:30
ep93xx_dma.c ep93xx_dma: remove useless use of lock 2013-08-05 09:32:24 +05:30
fsldma.c fsldma: remove useless use of lock 2013-08-05 09:32:24 +05:30
fsldma.h
imx-dma.c dma: imx-dma: Remove redundant NULL check 2013-09-02 17:35:58 +05:30
imx-sdma.c dma: imx-sdma: Staticize sdma_driver_data structures 2013-09-02 12:00:02 +05:30
intel_mid_dma.c
intel_mid_dma_regs.h
iop-adma.c dma: use dev_get_platdata() 2013-08-13 16:56:41 +05:30
iovlock.c
k3dma.c dma: k3dma: use devm_ioremap_resource() instead of devm_request_and_ioremap() 2013-09-02 17:35:34 +05:30
Kconfig dmaengine: Add hisilicon k3 DMA engine driver 2013-08-28 11:23:40 +05:30
Makefile dmaengine: Add hisilicon k3 DMA engine driver 2013-08-28 11:23:40 +05:30
mmp_pdma.c dma: mmp_pdma: set DMA_PRIVATE 2013-08-25 22:04:53 +05:30
mmp_tdma.c dma: mmp: simplify use of devm_ioremap_resource 2013-08-14 14:51:28 +05:30
mpc512x_dma.c mpc512x_dma: remove useless use of lock 2013-08-05 09:32:25 +05:30
mv_xor.c dma: use dev_get_platdata() 2013-08-13 16:56:41 +05:30
mv_xor.h drivers/dma: remove unused support for MEMSET operations 2013-07-03 16:07:42 -07:00
mxs-dma.c dma: mxs-dma: remove code left from generic DMA binding conversion 2013-08-19 14:20:21 +05:30
of-dma.c dma: of: make error message more meaningful by adding the node name 2013-08-19 14:45:05 +05:30
omap-dma.c
pch_dma.c pch_dma: Add MODULE_DEVICE_TABLE 2013-09-02 11:59:58 +05:30
pl330.c Merge branch 'topic/api_caps' into for-linus 2013-09-04 18:36:53 +05:30
sa11x0-dma.c
sirf-dma.c dmaengine: sirf: add PM entries for sleep and runtime 2013-08-13 17:01:01 +05:30
ste_dma40.c dma: ste_dma40: Fix potential null pointer dereference 2013-09-02 17:36:00 +05:30
ste_dma40_ll.c
ste_dma40_ll.h
tegra20-apb-dma.c tegra20-apb-dma: remove useless use of lock 2013-08-05 09:32:25 +05:30
timb_dma.c dma: use dev_get_platdata() 2013-08-13 16:56:41 +05:30
TODO
txx9dmac.c dma: use dev_get_platdata() 2013-08-13 16:56:41 +05:30
txx9dmac.h
virt-dma.c
virt-dma.h