linux-stable/drivers/dma
Alain Volmat 6c4a91f9bb dmaengine: stm32-mdma: correct desc prep when channel running
commit 03f25d53b1 upstream.

In case of the prep descriptor while the channel is already running, the
CCR register value stored into the channel could already have its EN bit
set.  This would lead to a bad transfer since, at start transfer time,
enabling the channel while other registers aren't yet properly set.
To avoid this, ensure to mask the CCR_EN bit when storing the ccr value
into the mdma channel structure.

Fixes: a4ffb13c89 ("dmaengine: Add STM32 MDMA driver")
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Cc: stable@vger.kernel.org
Tested-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20231009082450.452877-1-amelie.delaunay@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-28 17:15:08 +00:00
..
bestcomm dmaengine: bestcomm: Use of_address_to_resource() 2023-03-31 18:17:06 +05:30
dw dmaengine: dw: Move check for paused channel to dwc_get_residue() 2023-02-16 18:45:48 +05:30
dw-axi-dmac dmaengine: dw-axi-dmac: Don't set chancnt 2023-05-24 12:24:32 +05:30
dw-edma dmaengine: dw-edma: Add HDMA DebugFS support 2023-05-24 12:20:45 +05:30
fsl-dpaa2-qdma bus: fsl-mc: Make remove function return void 2023-05-30 18:58:43 -05:00
hsu
idxd dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers 2023-11-20 11:57:13 +01:00
ioat dmaengine: ioat: Free up __cleanup() name 2023-06-26 11:14:18 +02:00
ipu dmaengine: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:51 -07:00
lgm dmaengine: lgm: Move DT parsing after initialization 2023-01-18 15:32:16 +05:30
mediatek dmaengine: mediatek: Fix deadlock caused by synchronize_irq() 2023-10-19 23:11:08 +02:00
ppc4xx dmaengine: ppc4xx: Convert to use sysfs_emit()/sysfs_emit_at() APIs 2023-01-18 17:43:47 +05:30
ptdma dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
qcom dmaengine: hidma: Don't set chancnt 2023-05-24 12:24:32 +05:30
sf-pdma dmaengine: sf-pdma: pdma_desc memory leak fix 2023-02-16 18:45:48 +05:30
sh dmaengine: sh: rz-dmac: Fix destination and source data size setting 2023-09-19 12:30:22 +02:00
ti dmaengine: ti: edma: handle irq_of_parse_and_map() errors 2023-11-20 11:57:14 +01:00
xilinx dmaengine: xilinx: xdma: Fix typo 2023-08-07 00:01:41 +05:30
Kconfig idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM 2023-07-12 22:22:37 +05:30
Makefile dmaengine: remove s3c24xx driver 2023-01-16 09:26:06 +01:00
TODO
acpi-dma.c
altera-msgdma.c
amba-pl08x.c
apple-admac.c dmaengine: apple-admac: Fix 'current_tx' not getting freed 2023-03-31 18:17:21 +05:30
at_hdmac.c dmaengine: at_hdmac: Extend the Flow Controller bitfield to three bits 2023-05-24 11:20:28 +05:30
at_xdmac.c dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved() 2023-05-19 16:54:04 +05:30
bcm-sba-raid.c
bcm2835-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: Don't set chancnt 2023-05-24 12:24:32 +05:30
dma-jz4780.c
dmaengine.c dmaengine: Actually use devm_add_action_or_reset() 2023-03-17 23:13:42 +05:30
dmaengine.h
dmatest.c
ep93xx_dma.c dmaengine: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:51 -07:00
fsl-edma-common.c
fsl-edma-common.h
fsl-edma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
fsl-qdma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
fsl_raid.c
fsl_raid.h
fsldma.c
fsldma.h
hisi_dma.c
idma64.c dmaengine: idma64: Update bytes_transferred field 2023-02-16 18:45:48 +05:30
idma64.h
img-mdc-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
imx-dma.c dmaengine: imx-dma: Remove a redundant memset() call 2023-03-17 23:10:46 +05:30
imx-sdma.c dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
k3dma.c
lpc18xx-dmamux.c
mcf-edma.c dmaengine: mcf-edma: Fix a potential un-allocated memory access 2023-08-07 00:01:29 +05:30
milbeaut-hdmac.c
milbeaut-xdmac.c
mmp_pdma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
mmp_tdma.c dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
moxart-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
mpc512x_dma.c
mv_xor.c
mv_xor.h
mv_xor_v2.c dmaengine updates for v6.4 2023-05-03 11:11:56 -07:00
mxs-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
nbpfaxi.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
of-dma.c dmaengine: Use of_property_present() for testing DT property presence 2023-03-17 23:11:42 +05:30
owl-dma.c dmaengine: owl-dma: Modify mismatched function name 2023-08-07 00:01:41 +05:30
pch_dma.c
pl330.c dmaengine: pl330: Return DMA_PAUSED when transaction is paused 2023-08-07 00:01:41 +05:30
plx_dma.c dmaengine: plx_dma: Don't set chancnt 2023-05-24 12:24:32 +05:30
pxa_dma.c dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() 2023-11-20 11:57:14 +01:00
sa11x0-dma.c
sprd-dma.c dmaengine: sprd: Don't set chancnt 2023-05-24 12:24:32 +05:30
st_fdma.c
st_fdma.h
ste_dma40.c dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe 2023-11-08 14:08:56 +01:00
ste_dma40.h dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
ste_dma40_ll.c dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
ste_dma40_ll.h
stm32-dma.c dmaengine: stm32-dma: fix residue in case of MDMA chaining 2023-10-19 23:11:02 +02:00
stm32-dmamux.c dmaengine: stm32-mdma: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:51 -07:00
stm32-mdma.c dmaengine: stm32-mdma: correct desc prep when channel running 2023-11-28 17:15:08 +00:00
sun4i-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
sun6i-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
tegra20-apb-dma.c dmaengine: tegra-apb: remove unused tdma_read function 2023-03-31 17:51:15 +05:30
tegra186-gpc-dma.c dmaengine: tegra: Fix memory leak in terminate_all() 2023-01-18 22:18:38 +05:30
tegra210-adma.c dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
timb_dma.c
txx9dmac.c
txx9dmac.h
uniphier-mdmac.c
uniphier-xdmac.c
virt-dma.c
virt-dma.h
xgene-dma.c