[PATCH v4 00/14] NVIDIA Tegra APB DMA driver fixes and improvements

From: Dmitry Osipenko
Date: Sun Jan 12 2020 - 12:31:36 EST


Hello,

This series fixes some problems that I spotted recently, secondly the
driver's code gets a cleanup. Please review and apply, thanks in advance!

Changelog:

v4: - Addressed Jon's request to *not* remove the runtime PM usage, instead
there is now new patch that makes RPM more practical:

dmaengine: tegra-apb: Keep clock enabled only during of DMA transfer

- Added new minor patch to clean up RPM's teardown:

dmaengine: tegra-apb: Clean up runtime PM teardown

v3: - In the review comment to v1 MichaÅ MirosÅaw suggested that "Prevent
race conditions on channel's freeing" does changes that deserve to
be separated into two patches. I factored out and improved tasklet
releasing into this new patch:

dmaengine: tegra-apb: Clean up tasklet releasing

- The "Fix use-after-free" patch got an improved commit message.

v2: - I took another look at the driver and spotted few more things that
could be improved, which resulted in these new patches:

dmaengine: tegra-apb: Remove runtime PM usage
dmaengine: tegra-apb: Clean up suspend-resume
dmaengine: tegra-apb: Add missing of_dma_controller_free
dmaengine: tegra-apb: Allow to compile as a loadable kernel module
dmaengine: tegra-apb: Remove MODULE_ALIAS

Dmitry Osipenko (14):
dmaengine: tegra-apb: Fix use-after-free
dmaengine: tegra-apb: Implement synchronization callback
dmaengine: tegra-apb: Prevent race conditions on channel's freeing
dmaengine: tegra-apb: Clean up tasklet releasing
dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
dmaengine: tegra-apb: Use devm_platform_ioremap_resource
dmaengine: tegra-apb: Use devm_request_irq
dmaengine: tegra-apb: Fix coding style problems
dmaengine: tegra-apb: Clean up runtime PM teardown
dmaengine: tegra-apb: Keep clock enabled only during of DMA transfer
dmaengine: tegra-apb: Clean up suspend-resume
dmaengine: tegra-apb: Add missing of_dma_controller_free
dmaengine: tegra-apb: Allow to compile as a loadable kernel module
dmaengine: tegra-apb: Remove MODULE_ALIAS

drivers/dma/Kconfig | 2 +-
drivers/dma/tegra20-apb-dma.c | 509 +++++++++++++++++-----------------
2 files changed, 263 insertions(+), 248 deletions(-)

--
2.24.0