summaryrefslogtreecommitdiff
path: root/drivers/dma/ti
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2018-11-06 06:40:33 +0300
committerVinod Koul <vkoul@kernel.org>2018-12-05 11:23:00 +0300
commitb8603d2a5795c42f78998e70dc792336e0dc20c9 (patch)
tree1b38c58ad21a773bc6ace80df97256c196a0e22c /drivers/dma/ti
parentebb853b1bd5f659b92c71dc6a9de44cfc37c78c0 (diff)
downloadlinux-b8603d2a5795c42f78998e70dc792336e0dc20c9.tar.xz
dmaengine: imx-sdma: implement channel termination via worker
The dmaengine documentation states that device_terminate_all may be asynchronous and need not wait for the active transfers to stop. This allows us to move most of the functionality currently implemented in the sdma channel termination function to run in a worker, outside of any atomic context. Moving this out of atomic context has two benefits: we can now sleep while waiting for the channel to terminate, instead of busy waiting and the freeing of the dma descriptors happens with IRQs enabled, getting rid of a warning in the dma mapping code. As the termination is now async, we need to implement the device_synchronize dma engine function which simply waits for the worker to finish its execution. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Robin Gong <yibin.gong@nxp.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/ti')
0 files changed, 0 insertions, 0 deletions