linux/drivers/dma
Amelie Delaunay 2ff0fb9474 dmaengine: stm32-dma3: prevent LL refactoring thanks to DT configuration
stm32-dma3 driver refactors the linked-list in order to address the memory
with the highest possible data width.
It means that it can introduce up to 2 linked-list items. One with a
transfer length multiple of channel maximum burst length and so with the
highest possible data width. And an extra one with the latest bytes, with
lower data width.
Some devices (e.g. FMC ECC) don't support having several transfers instead
of only one.
So add the possibility to prevent linked-list refactoring, when bit 17 of
the 'DMA transfer requirements' bit mask is set in device tree.
When NOPACK feature is used (bit 16 pf the 'DMA transfer requirements' bit
mask in device tree), linked-list refactoring can be avoided, since the
memory data width and burst will be aligned with the device ones.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20241016-dma3-mp25-updates-v3-5-8311fe6f228d@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2024-10-21 22:51:45 +05:30
..
amd dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
bestcomm dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
dw dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
dw-axi-dmac dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
dw-edma dmaengine: dw-edma: Do not enable watermark interrupts for HDMA 2024-08-28 18:40:17 +05:30
fsl-dpaa2-qdma dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: idxd: Move DSA/IAA device IDs to IDXD driver 2024-10-21 22:32:39 +05:30
ioat dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
lgm dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mediatek dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
ppc4xx dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
ptdma dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
qcom dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
sf-pdma dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
sh dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
stm32 dmaengine: stm32-dma3: prevent LL refactoring thanks to DT configuration 2024-10-21 22:51:45 +05:30
ti dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
xilinx dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
acpi-dma.c dmaengine: acpi: Clean up headers 2024-10-14 23:27:57 +05:30
altera-msgdma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
amba-pl08x.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
apple-admac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
at_hdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
at_xdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
bcm2835-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
bcm-sba-raid.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
dma-axi-dmac.c dmaengine: dma-axi-dmac: Implement device_prep_peripheral_dma_vec 2024-06-21 15:31:57 +05:30
dma-jz4780.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
dmaengine.c dmaengine: avoid non-constant format string 2024-08-29 22:49:53 +05:30
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for callback_result 2021-10-25 09:42:56 +05:30
dmatest.c dmaengine: dmatest: Explicitly cast divisor to u32 2024-08-05 22:30:55 +05:30
ep93xx_dma.c dmaengine: ep93xx: Fix unsigned compared against 0 2024-10-14 23:45:37 +05:30
fsl_raid.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
fsl_raid.h dmaengine: Driver support for FSL RaidEngine device. 2015-04-02 16:10:27 +05:30
fsl-edma-common.c dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-06-11 23:55:34 +05:30
fsl-edma-common.h dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-06-11 23:55:34 +05:30
fsl-edma-main.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +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: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
fsldma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
fsldma.h fsldma: fix very broken 32-bit ppc ioread64 functionality 2020-08-29 13:50:56 -07:00
hisi_dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
idma64.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
idma64.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
img-mdc-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
imx-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
imx-sdma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
k3dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
Kconfig dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
loongson1-apb-dma.c dmaengine: loongson1-apb-dma: Fix the build warning caused by the size of pdev_irqname 2024-09-02 13:56:32 +05:30
lpc18xx-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
lpc32xx-dmamux.c dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
ls2x-apb-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
Makefile dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
mcf-edma-main.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
milbeaut-hdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
milbeaut-xdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
mmp_pdma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
mmp_tdma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
moxart-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
mpc512x_dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
mv_xor_v2.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
mv_xor.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mv_xor.h dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mxs-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
nbpfaxi.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
of-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
owl-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
pch_dma.c dmaengine: pch_dma: remove unused function chan2parent 2024-04-07 18:36:58 +05:30
pl330.c dma-mapping: don't return errors from dma_set_max_seg_size 2024-08-29 07:22:49 +03:00
plx_dma.c dmaengine: plx_dma: Don't set chancnt 2023-05-24 12:24:32 +05:30
pxa_dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
sa11x0-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
sprd-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
st_fdma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +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 dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
ste_dma40.c dma-mapping: don't return errors from dma_set_max_seg_size 2024-08-29 07:22:49 +03:00
ste_dma40.h dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
sun4i-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
sun6i-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
tegra20-apb-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
tegra186-gpc-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
tegra210-adma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
timb_dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-07-15 22:14:30 +05:30
txx9dmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
txx9dmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
uniphier-mdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
uniphier-xdmac.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30
virt-dma.c dmaengine: virt-dma: add missing MODULE_DESCRIPTION() macro 2024-06-28 13:03:13 +05:30
virt-dma.h dma: Add lockdep asserts to virt-dma 2024-04-07 17:08:19 +05:30
xgene-dma.c dmaengine: Switch back to struct platform_driver::remove() 2024-10-14 23:50:34 +05:30