linux/drivers/dma
Olivier Dautricourt d3ddfab096 dmaengine: altera-msgdma: cleanup after completing all descriptors
msgdma_chan_desc_cleanup iterates the done list for each completed
descriptor while we need to do it once after all descriptors are
completed.

This fixes a Sparse warning because we first take the lock in
msgdma_tasklet.
- Move locking to msgdma_chan_desc_cleanup.
- Move call to msgdma_chan_desc_cleanup outside of the critical section of
msgdma_tasklet.

Inspired by: commit 16ed0ef3e9 ("dmaengine: zynqmp_dma: cleanup after
                                   completing all descriptors")

Signed-off-by: Olivier Dautricourt <olivierdautricourt@gmail.com>
Tested-by: Olivier Dautricourt <olivierdautricourt@gmail.com>
Suggested-by: Eric Schwarz <eas@sw-optimization.com>
Link: https://lore.kernel.org/r/20240608213216.25087-2-olivierdautricourt@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2024-06-11 21:50:55 +05:30
..
bestcomm dmaengine: bestcomm: Code cleanup for bcom_sram_init 2024-01-30 22:11:56 +05:30
dw dmaengine: dw: platform: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dw-axi-dmac dma: dw-axi-dmac: support per channel interrupt 2024-04-07 17:18:14 +05:30
dw-edma dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup 2024-02-07 09:30:52 +01:00
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix kernel-doc check warning 2024-04-25 14:41:55 +05:30
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: add missing MODULE_DESCRIPTION() macros 2024-06-07 22:44:48 +05:30
ioat dmaengine: add missing MODULE_DESCRIPTION() macros 2024-06-07 22:44:48 +05:30
lgm dmaengine: lgm: Use builtin_platform_driver macro to simplify the code 2023-08-21 11:13:09 +05:30
mediatek dmaengine updates for v6.7 2023-11-03 18:56:51 -10:00
ppc4xx dmaengine: ppc4xx: adma: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
ptdma dmaengine: ptdma: use consistent DMA masks 2024-02-23 12:22:55 +05:30
qcom dmaengine: qcom: add missing MODULE_DESCRIPTION() macros 2024-06-07 23:15:55 +05:30
sf-pdma dmaengine: sf-pdma: add mpfs-pdma compatible name 2023-12-11 16:33:22 +05:30
sh dmaengine: shdma: increase size of 'dev_id' 2024-01-19 18:12:10 +05:30
ti dmaengine: ti: k3-udma: fix module autoloading 2024-06-07 23:12:08 +05:30
xilinx dmaengine updates for v6.10 2024-05-21 11:15:56 -07:00
acpi-dma.c dmaengine: acpi: Check for errors from acpi_register_gsi() separately 2021-08-06 21:48:11 +05:30
altera-msgdma.c dmaengine: altera-msgdma: cleanup after completing all descriptors 2024-06-11 21:50:55 +05:30
amba-pl08x.c dmaengine: pl08x: Use kcalloc() instead of kzalloc() 2024-04-17 22:43:17 +05:30
apple-admac.c dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH 2023-11-24 18:57:56 +05:30
at_hdmac.c dmaengine: at_hdmac: add missing kernel-doc style description 2024-02-02 17:16:55 +01:00
at_xdmac.c dmaengine: at_xdmac: Convert to platform remove callback returning void 2023-09-28 13:10:45 +05:30
bcm2835-dma.c dmaengine: bcm2835-dma: Convert to platform remove callback returning void 2023-09-28 13:10:46 +05:30
bcm-sba-raid.c dmaengine: bcm-sba-raid: Convert to platform remove callback returning void 2023-09-28 13:10:46 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: move to device managed probe 2024-04-07 17:10:20 +05:30
dma-jz4780.c dmaengine: dma-jz4780: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dmaengine.c dmaengine: fix NULL pointer in channel unregistration function 2023-12-21 21:44:29 +05:30
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for callback_result 2021-10-25 09:42:56 +05:30
dmatest.c dmaengine: add missing MODULE_DESCRIPTION() macros 2024-06-07 22:44:48 +05:30
ep93xx_dma.c dmaengine: ep93xx_dma: Annotate struct ep93xx_dma_engine with __counted_by 2023-10-04 15:12:57 +05:30
fsl_raid.c dmaengine: fsl_raid: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
fsl_raid.h
fsl-edma-common.c dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
fsl-edma-common.h dmaengine: fsl-edma: use _Generic to handle difference type 2024-05-04 18:00:17 +05:30
fsl-edma-main.c dmaengine: fsl-edma: clean up unused "fsl,imx8qm-adma" compatible string 2024-04-25 14:32:28 +05:30
fsl-edma-trace.c dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
fsl-edma-trace.h dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
fsl-qdma.c dmaengine: fsl-qdma: add __iomem and struct in union to fix sparse warning 2024-02-23 12:20:39 +05:30
fsldma.c dmaengine: fsldma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
fsldma.h
hisi_dma.c dmaengine: hisilicon: Annotate struct hisi_dma_dev with __counted_by 2023-09-28 16:42:14 +05:30
idma64.c dmaengine updates for v6.10 2024-05-21 11:15:56 -07:00
idma64.h
img-mdc-dma.c dmaengine: img-mdc-dma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
imx-dma.c dmaengine: imx-dma: Convert to platform remove callback returning void 2023-09-28 13:10:49 +05:30
imx-sdma.c dmaengine: imx-sdma: don't print warning when firmware is absent 2024-06-07 23:14:45 +05:30
k3dma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
Kconfig dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA 2024-01-22 16:38:11 +05:30
lpc18xx-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
ls2x-apb-dma.c dmaengine: ls2x-apb: New driver for the Loongson LS2X APB DMA controller 2023-12-21 21:35:13 +05:30
Makefile dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
mcf-edma-main.c dmaengine: fsl-edma: remove 'slave_id' from fsl_edma_chan 2024-04-07 17:20:00 +05:30
milbeaut-hdmac.c dmaengine: milbeaut-hdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
mmp_pdma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
mmp_tdma.c dmaengine: mmp_tdma: drop unused variable 'of_id' 2023-10-10 23:30:52 +05:30
moxart-dma.c dmaengine: moxart-dma: Annotate struct moxart_desc with __counted_by 2023-09-28 16:42:14 +05:30
mpc512x_dma.c dmaengine: mpc512x_dma: Convert to platform remove callback returning void 2023-09-28 13:10:51 +05:30
mv_xor_v2.c irqchip: Convert all platform MSI users to the new API 2024-02-15 17:55:40 +01:00
mv_xor.c dmaengine: Use device_get_match_data() 2023-10-09 10:54:48 +05:30
mv_xor.h
mxs-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
nbpfaxi.c dmaengine: nbpfaxi: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
of-dma.c dmaengine: of: constify of_phandle_args in of_dma_find_controller() 2024-02-23 12:44:08 +05:30
owl-dma.c dmaengine: owl: fix register access functions 2024-03-28 12:29:36 +05:30
pch_dma.c dmaengine: pch_dma: remove unused function chan2parent 2024-04-07 18:36:58 +05:30
pl330.c ARM development updates for v6.10-rc1 2024-05-17 08:53:47 -07:00
plx_dma.c dmaengine: plx_dma: Don't set chancnt 2023-05-24 12:24:32 +05:30
pxa_dma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
sa11x0-dma.c dmaengine: sa11x0: Annotate struct sa11x0_dma_desc with __counted_by 2023-09-28 16:42:14 +05:30
sprd-dma.c dmaengine: sprd: delete redundant parameter for dma driver function 2023-10-02 21:28:33 +05:30
st_fdma.c dmaengine: Use device_get_match_data() 2023-10-09 10:54:48 +05:30
st_fdma.h dmaengine: st_fdma: Annotate struct st_fdma_desc with __counted_by 2023-09-28 16:42:14 +05:30
ste_dma40_ll.c dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
ste_dma40_ll.h
ste_dma40.c dmaengine: std_dma40: fix kernel-doc warnings and spelling 2023-12-21 21:31:30 +05:30
ste_dma40.h dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
stm32-dma.c dmaengine: stm32-dma: avoid bitfield overflow assertion 2023-11-24 18:28:25 +05:30
stm32-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
stm32-mdma.c dmaengine updates for v6.7 2023-11-03 18:56:51 -10:00
sun4i-dma.c dmaengine: sun4i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:55 +05:30
sun6i-dma.c dmaengine: sun6i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra20-apb-dma.c dmaengine: tegra20-apb-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra186-gpc-dma.c dmaengine: tegra186: Fix residual calculation 2024-03-28 12:31:42 +05:30
tegra210-adma.c dmaengine: tegra210-adma: Support dma-channel-mask property 2023-12-11 17:44:18 +05:30
timb_dma.c dmaengine: timb_dma: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30
TODO
txx9dmac.c dmaengine: txx9dmac: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30
txx9dmac.h
uniphier-mdmac.c dmaengine: uniphier-mdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
uniphier-xdmac.c dmaengine: uniphier-xdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
virt-dma.c
virt-dma.h dma: Add lockdep asserts to virt-dma 2024-04-07 17:08:19 +05:30
xgene-dma.c dmaengine: xgene-dma: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30