[PATCH v6 00/16] NVIDIA Tegra APB DMA driver fixes and improvements
From: Dmitry Osipenko
Date: Wed Jan 29 2020 - 23:41:28 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:
v6: - Added stable tag and changed order of the patch "Prevent race
conditions of tasklet vs free list", making it patch #2, as was
requested by Jon Hunter in the review comment to v5.
- Factored out the tdc->config_init cleanup into separate patch, as was
requested by Jon Hunter in the review comment to v5:
dmaengine: tegra-apb: Remove unneeded initialization of tdc->config_init
- Added new very minor patch to enable compile-testing for the driver:
dmaengine: tegra-apb: Support COMPILE_TEST
v5: - Fixed touching hardware registers after RPM-suspending in the patch
"Keep clock enabled only during of DMA transfer", now RPM is kept
resumed in the tegra_dma_terminate_all() while needed. Thanks to
Jon Hunter for pointing at this problem in a review comment to v4.
- The "Clean up runtime PM teardown" patch is replaced with the "Remove
assumptions about unavailable runtime PM" patch because I recalled that
now RPM is always available on all Tegra SoCs.
- The "Clean up suspend-resume" patch got a minor improvement, now
tasklet_kill() is invoked before checking of the busy state in
tegra_dma_dev_suspend(), this should allow us to catch problems if DMA
callback issues a new DMA transfer.
- Added Jon's acks to the reviewed patches.
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 (16):
dmaengine: tegra-apb: Fix use-after-free
dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
dmaengine: tegra-apb: Implement synchronization hook
dmaengine: tegra-apb: Prevent race conditions on channel's freeing
dmaengine: tegra-apb: Clean up tasklet releasing
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: Remove unneeded initialization of
tdc->config_init
dmaengine: tegra-apb: Remove assumptions about unavailable runtime PM
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
dmaengine: tegra-apb: Support COMPILE_TEST
drivers/dma/Kconfig | 4 +-
drivers/dma/tegra20-apb-dma.c | 507 +++++++++++++++++-----------------
2 files changed, 261 insertions(+), 250 deletions(-)
--
2.24.0