summaryrefslogtreecommitdiff
path: root/drivers/dma/ioat
diff options
context:
space:
mode:
authorRobert Jarzmik <robert.jarzmik@free.fr>2016-07-10 23:50:49 +0200
committerVinod Koul <vinod.koul@intel.com>2016-07-23 16:07:29 +0530
commit7d604663255ac757ab4b0e17f533cba136486551 (patch)
tree593d64dd9bb2a23a7e53ae2a0a51f35ccc0b7af0 /drivers/dma/ioat
parent0d605ba0b8ce7f5963124853774cc9bd84589a99 (diff)
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>
Diffstat (limited to 'drivers/dma/ioat')
0 files changed, 0 insertions, 0 deletions