Messages in this thread | | | From | Dmitry Osipenko <> | Subject | [PATCH v5 00/14] NVIDIA Tegra APB DMA driver fixes and improvements | Date | Fri, 24 Jan 2020 02:03:11 +0300 |
| |
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:
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 (14): dmaengine: tegra-apb: Fix use-after-free 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: 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: 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
drivers/dma/Kconfig | 2 +- drivers/dma/tegra20-apb-dma.c | 507 +++++++++++++++++----------------- 2 files changed, 260 insertions(+), 249 deletions(-)
-- 2.24.0
| |