Convert the Freescale Elo DMA driver to use managed device resources
(devm), simplifying probe error handling and the remove path by
dropping explicit iounmap, kfree, and free_irq calls.
While doing so, fix a few issues uncovered along the way:
- Kill the channel tasklet before removal to prevent a race with
the IRQ handler.
- Check the return value of dma_async_device_register() instead
of silently returning success.
- Replace the powerpc-specific I/O accessors with portable
generic ones so the driver can be built on non-powerpc
architectures.
Build-tested with LLVM=1 ARCH=powerpc allmodconfig.
Rosen Penev (10):
dmaengine: fsldma: kill tasklet before removing channel
dmaengine: fsldma: check dma_async_device_register() return value
dmaengine: fsldma: convert to platform_get_irq_optional()
dmaengine: fsldma: convert to devm_kzalloc and fix error path
dmaengine: fsldma: convert ioremap to devm_platform_ioremap_resource
dmaengine: fsldma: convert channel allocation to devm_kzalloc
dmaengine: fsldma: convert channel ioremap to devm_of_iomap
dmaengine: fsldma: replace irq_of_parse_and_map with of_irq_get
dmaengine: fsldma: convert to devm_request_irq
dmaengine: fsldma: replace ppc-specific accessors with portable
generic ones
drivers/dma/Kconfig | 2 +-
drivers/dma/fsldma.c | 139 +++++++++++++------------------------------
drivers/dma/fsldma.h | 35 ++++++++++-
3 files changed, 76 insertions(+), 100 deletions(-)
--
2.54.0