OpenCloudOS-Kernel/drivers/dma
Joy Zou c91c8d3830 dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM
[ Upstream commit 8ddad558997002ce67980e30c9e8dfaa696e163b ]

Fix the issue where MEM_TO_MEM fail on i.MX8QM due to the requirement
that both source and destination addresses need pass through the IOMMU.
Typically, peripheral FIFO addresses bypass the IOMMU, necessitating
only one of the source or destination to go through it.

Set "is_remote" to true to ensure both source and destination
addresses pass through the IOMMU.

iMX8 Spec define "Local" and "Remote" bus as below.
Local bus: bypass IOMMU to directly access other peripheral register,
such as FIFO.
Remote bus: go through IOMMU to access system memory.

The test fail log as follow:
[ 66.268506] dmatest: dma0chan0-copy0: result #1: 'test timed out' with src_off=0x100 dst_off=0x80 len=0x3ec0 (0)
[ 66.278785] dmatest: dma0chan0-copy0: summary 1 tests, 1 failures 0.32 iops 4 KB/s (0)

Fixes: 72f5801a4e ("dmaengine: fsl-edma: integrate v3 support")
Signed-off-by: Joy Zou <joy.zou@nxp.com>
Cc: stable@vger.kernel.org
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20240510030959.703663-1-joy.zou@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:47:17 +02:00
..
bestcomm dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
dw dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
dw-axi-dmac Avoid hw_desc array overrun in dw-axi-dmac 2024-06-27 13:49:04 +02:00
dw-edma dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup 2024-03-06 14:48:43 +00:00
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools 2024-02-16 19:10:42 +01:00
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list 2024-06-27 13:49:08 +02:00
ioat dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-06-27 13:49:09 +02:00
lgm dmaengine: lgm: Use builtin_platform_driver macro to simplify the code 2023-08-21 11:13:09 +05:30
mediatek dmaengine: mediatek: Fix deadlock caused by synchronize_irq() 2023-10-04 19:26:36 +05:30
ppc4xx dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
ptdma dmaengine: ptdma: use consistent DMA masks 2024-03-06 14:48:40 +00:00
qcom dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
sf-pdma dmaengine: sf-pdma: pdma_desc memory leak fix 2023-02-16 18:45:48 +05:30
sh dmaengine: shdma: increase size of 'dev_id' 2024-03-01 13:34:48 +01:00
ti dmaengine: ti: k3-udma: Fix BCHAN count with UHC and HC channels 2024-08-03 08:54:34 +02:00
xilinx dma: xilinx_dpdma: Fix locking 2024-05-02 16:32:48 +02:00
Kconfig dmaengine: fsl-edma: avoid linking both modules 2024-06-27 13:49:09 +02:00
Makefile dmaengine: fsl-edma: clean up EXPORT_SYMBOL_GPL in fsl-edma-common.c 2023-08-22 20:11:02 +05:30
TODO
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: Fixed some inconsistent function name descriptions 2022-07-06 22:00:06 +05:30
amba-pl08x.c dmaengine: pl08x: Fix double word 2022-09-29 12:24:16 +05:30
apple-admac.c dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH 2024-03-01 13:34:47 +01:00
at_hdmac.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +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 dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
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: fix possible race in remove() 2024-06-21 14:38:41 +02:00
dma-jz4780.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
dmaengine.c dmaengine: fix NULL pointer in channel unregistration function 2024-01-31 16:18:47 -08:00
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` 2021-10-25 09:42:56 +05:30
dmatest.c treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
ep93xx_dma.c dmaengine: ep93xx: Use struct_size() 2023-08-02 00:02:51 +05:30
fsl-edma-common.c dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-08-11 12:47:17 +02:00
fsl-edma-common.h dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-08-11 12:47:17 +02:00
fsl-edma-main.c dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-08-11 12:47:17 +02:00
fsl-qdma.c dmaengine: fsl-qdma: init irq after reg initialization 2024-03-06 14:48:41 +00:00
fsl_raid.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
fsl_raid.h
fsldma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +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: hisilicon: Dump regs to debugfs 2022-09-04 22:42:35 +05:30
idma64.c dmaengine: idma64: Add check for dma_set_max_seg_size 2024-06-12 11:12:15 +02:00
idma64.h
img-mdc-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
imx-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
imx-sdma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
k3dma.c dmaengine: k3dma: use the correct HiSilicon copyright 2021-04-12 17:14:53 +05:30
lpc18xx-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
mcf-edma-main.c dmaengine updates for v6.6 2023-09-03 10:49:42 -07:00
milbeaut-hdmac.c dmaengine: milbeaut-hdmac: Prefer kcalloc over open coded arithmetic 2021-10-25 12:12:13 +05:30
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Fix a resource leak in the error handling path of the probe function 2020-12-29 10:08:00 +05:30
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 dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
mv_xor.c dmaengine: mv_xor: drop of_match_ptr from of_device_id table 2020-11-24 23:02:20 +05:30
mv_xor.h
mv_xor_v2.c dmaengine updates for v6.4 2023-05-03 11:11:56 -07:00
mxs-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
nbpfaxi.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +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: fix register access functions 2024-05-02 16:32:47 +02:00
pch_dma.c dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API 2022-01-08 22:16:44 +05:30
pl330.c dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state" 2024-05-17 12:01:55 +02:00
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:59:26 +01:00
sa11x0-dma.c dmaengine: sa11x0: Mark PM functions as __maybe_unused 2021-10-26 10:55:07 +05:30
sprd-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
st_fdma.c dmaengine: st_fdma: fix MODULE_ALIAS 2021-12-13 13:18:48 +05:30
st_fdma.h
ste_dma40.c dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe 2023-10-09 10:56:51 +05:30
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: avoid bitfield overflow assertion 2023-12-20 17:02:02 +01:00
stm32-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
stm32-mdma.c dmaengine: stm32-mdma: correct desc prep when channel running 2023-11-28 17:20:05 +00:00
sun4i-dma.c dmaengine: drivers: Use devm_platform_ioremap_resource() 2023-01-18 22:16:47 +05:30
sun6i-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
tegra20-apb-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
tegra186-gpc-dma.c dmaengine: tegra186: Fix residual calculation 2024-05-02 16:32:47 +02:00
tegra210-adma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
timb_dma.c dmaengine: timb_dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
txx9dmac.c dmaengine: txx9dmac: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
txx9dmac.h
uniphier-mdmac.c
uniphier-xdmac.c dmaengine: uniphier-xdmac: Fix type of address variables 2022-01-03 17:49:37 +05:30
virt-dma.c dmaengine: virt-dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
virt-dma.h
xgene-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30