linux/drivers/dma
Robert Jarzmik 7d60466325 dmaengine: pxa_dma: implement device_synchronize
Implement the function which wait until a dma channel is stopped to have
a synchronization point.

This also protects the pxad_remove() from races, such as spurious
interrupts while removing the driver, because :
 - as long as there is one dma channel requested, ie. dma_chan_get() but
   no dma_chan_put(), the try_module_get() of dma_chan_get() prevents
   the remove() routine from running
 - when the last channel is released, ie. the last dma_chan_put() is
   called, if there is a running DMA, pxad_synchronize() is called
 - pxad_synchronize() waits for the channel to stop, which in turn
   ensures on pxa architecture that the interrupt cannot be fired anymore

Reported-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2016-07-23 16:07:29 +05:30
..
bestcomm dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
dw dmaengine: dw: pass platform data via struct dw_dma_chip 2016-05-02 15:31:05 +05:30
hsu dmaengine updates for 4.7 2016-05-19 11:47:18 -07:00
ioat dmaengine: ioatdma: disable relaxed ordering for ioatdma 2016-05-14 13:36:52 +05:30
ipu genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
ppc4xx dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
qcom dmaengine: qcom_hidma_lli: kill the tasklets upon exit 2016-07-23 16:07:27 +05:30
sh Merge branch 'topic/sh' into for-linus 2016-07-16 20:10:17 +05:30
xilinx dmaengine: zynqmp: avoid cast warning 2016-07-12 10:03:16 +05:30
acpi-dma.c dmaengine: acpi-dma: align debug message with flow 2016-02-22 09:06:09 +05:30
amba-pl08x.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: use %pad format string for dma_addr_t 2015-11-16 09:21:05 +05:30
at_hdmac.c dmaengine: at_hdmac: use %pad format string for dma_addr_t 2015-11-16 09:21:05 +05:30
at_xdmac.c Merge branch 'topic/at_xdmac' into for-linus 2016-07-16 20:09:18 +05:30
bcm2835-dma.c dmaengine: bcm2835: fix 64-bit warning 2016-07-06 22:39:43 +05:30
coh901318_lli.c
coh901318.c dmaengine: coh901318: remove owner assignment 2016-07-23 16:07:25 +05:30
coh901318.h
cppi41.c dmaengine: cppi: remove unused and bogus check 2016-07-23 16:07:27 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: Return IRQ_NONE if no IRQs are pending 2016-07-01 22:56:41 +05:30
dma-jz4740.c dmaengine: jz4740: kill the tasklets upon exit 2016-07-16 20:19:00 +05:30
dma-jz4780.c dmaengine: jz4780: Kill tasklets before unregistering the device 2015-08-18 22:28:50 +05:30
dmaengine.c Merge branch 'topic/core' into for-linus 2016-05-17 10:13:40 +05:30
dmaengine.h
dmatest.c dmaengine: dmatest: Add support for scatter-gather DMA mode 2016-07-16 20:17:26 +05:30
edma.c dmaengine: edma: kill the tasklets upon exit 2016-07-16 20:18:58 +05:30
ep93xx_dma.c dmaengine: ep93xx: Treat STALL and NFB IRQs same way 2016-01-25 09:49:55 +05:30
fsl_raid.c dmaengine: fsl_raid: remove owner assignment 2016-07-23 16:07:26 +05:30
fsl_raid.h dmaengine: Driver support for FSL RaidEngine device. 2015-04-02 16:10:27 +05:30
fsl-edma.c dmaengine: fsl-edma: kill the tasklets upon exit 2016-07-16 20:19:00 +05:30
fsldma.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
fsldma.h dmaengine: fsldma: declare slave capabilities for the generic code 2015-01-13 23:58:08 +05:30
idma64.c dmaengine: idma64: clear LLP_[SD]_EN bits in last descriptor 2016-02-15 22:06:45 +05:30
idma64.h asm-generic changes for 4.6 2016-03-24 23:13:48 -07:00
img-mdc-dma.c dmaengine: mdc: Correct terminate_all handling 2015-12-18 11:12:29 +05:30
imx-dma.c dmaengine: imx-dma: fix coding style issue 2016-07-16 20:19:01 +05:30
imx-sdma.c dmaengine: imx-sdma: remove assignment never used 2016-07-23 16:07:28 +05:30
iop-adma.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
k3dma.c dmaengine: k3dma: explicitly freeup irq 2016-07-16 20:19:02 +05:30
Kconfig Merge branch 'topic/xilinx' into for-linus 2016-07-16 20:10:54 +05:30
lpc18xx-dmamux.c dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
Makefile dmaengine: mv_xor_v2: new driver 2016-07-12 10:09:53 +05:30
mic_x100_dma.c dma/mic_x100_dma: IS_ERR() vs PTR_ERR() typo 2016-03-03 21:13:01 +05:30
mic_x100_dma.h dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_pdma.c dmaengine: mmp_pdma: explicitly freeup irq 2016-07-16 20:19:03 +05:30
mmp_tdma.c dmaengine: mmp_tdma: statify symbols 2016-07-16 20:19:03 +05:30
moxart-dma.c dmaengine: moxart-dma: explicitly freeup irq 2016-07-16 20:19:03 +05:30
mpc512x_dma.c dmaengine: mpc512x: kill the tasklets upon exit 2016-07-16 20:19:05 +05:30
mv_xor_v2.c dmaengine: mv_xor_v2: remove trailing whitespace 2016-07-12 10:10:00 +05:30
mv_xor.c dmaengine: mv_xor: Minor coding style fix 2016-06-07 12:43:40 +05:30
mv_xor.h dmaengine: mv_xor: use SoC type instead of directly the operation mode 2016-05-03 12:27:47 +05:30
mxs-dma.c dmaengine: mxs: Constify platform_device_id 2015-05-04 16:38:55 +05:30
nbpfaxi.c dmaengine: nbpfaxi: kill the tasklets upon exit 2016-07-16 20:19:04 +05:30
of-dma.c dmaengine: of_dma: approximate an average distribution 2016-05-14 13:34:10 +05:30
omap-dma.c dmaengine: omap-dma: explicitly freeup irq 2016-07-16 20:19:05 +05:30
pch_dma.c dmaengine: Remove remaining FSF mailing addresses 2015-07-06 19:18:53 +05:30
pl330.c dmaengine: pl330: explicitly freeup irq 2016-07-16 20:19:05 +05:30
pxa_dma.c dmaengine: pxa_dma: implement device_synchronize 2016-07-23 16:07:29 +05:30
s3c24xx-dma.c dmaengine: s3c24xx: kill the tasklets upon exit 2016-07-23 16:07:24 +05:30
sa11x0-dma.c dmaengine: sa11x0: report slave capabilities to upper layers 2015-04-17 23:24:35 +05:30
sirf-dma.c dmaengine: sirf-dma: kill the tasklets upon exit 2016-07-23 16:07:24 +05:30
ste_dma40_ll.c dmaengine: ste_dma40_ll: make d40_width_to_bits static 2016-06-08 08:59:55 +05:30
ste_dma40_ll.h dmaengine: ste_dma40: Remove unnecessary call to d40_phy_cfg() 2013-05-23 21:13:19 +02:00
ste_dma40.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
stm32-dma.c dmaengine: stm32-dma: Fix unchecked deference of chan->desc 2015-12-10 09:45:22 +05:30
sun4i-dma.c remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
sun6i-dma.c dmaengine: sun6i-dma: Only calculate residue if state exists. 2016-06-21 21:35:00 +05:30
tegra20-apb-dma.c Merge branch 'topic/tegra' into for-linus 2016-07-16 20:10:42 +05:30
tegra210-adma.c dmaengine: tegra-adma: Add support for Tegra210 ADMA 2016-05-13 14:56:24 +05:30
ti-dma-crossbar.c dmaengine: ti-dma-crossbar: make omap_dmaxbar_init static 2016-06-28 20:09:54 +05:30
timb_dma.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-07-15 22:14:30 +05:30
txx9dmac.c dmaengine: txx9dmac: explicitly freeup irq 2016-07-23 16:07:25 +05:30
txx9dmac.h MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT 2014-11-24 22:46:44 +01:00
virt-dma.c dmaengine: virt-dma: don't always free descriptor upon completion 2015-11-16 08:32:16 +05:30
virt-dma.h Merge branch 'topic/async' into for-linus 2016-01-06 15:17:47 +05:30
xgene-dma.c dmaengine: xgene-dma: Fix double IRQ issue by setting IRQ_DISABLE_UNLAZY flag 2016-01-07 11:09:36 +05:30
zx296702_dma.c dmaengine updates for 4.4-rc1 2015-11-10 10:05:17 -08:00