linux-uconsole/drivers/dma
Sugar Zhang ec0b65dbc5 dmaengine: pl330: Optimize scatterlist transfer
Use hardware link-list instead of soft link-list to make sure
no gap among the scatter-list transfer.

Merge multiple descs [first ... last] into the last desc,
and drop the descs which have been merged into last one.

Now we get the union one rather than a soft SGL.

Obviously, this require much more MCODE buf size, because we
merge multiple descs into a union one. Increase MCODE buf size
if needed.

e.g.

  -#define MCODE_BUFF_PER_REQ	256
  +#define MCODE_BUFF_PER_REQ	512

or parsed from DT

  arm,pl330-mcbufsz-bytes = <512>;

Otherwise, you may see the warning log on the long SGL situation.

  dma-pl330 2ab90000.dmac: pl330_submit_req: Try increasing mcbufsz (403/256)

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: Iea31fc9dba08d36570d4bdbe2c5fcb61f5fed0d4
2024-08-29 14:24:37 +08:00
..
bestcomm dmaengine: bestcomm: fix system boot lockups 2022-09-23 14:16:56 +02:00
dw dmaengine updates for v6.0-rc1 2022-08-04 18:44:38 -07:00
dw-axi-dmac dmaengine: dw-axi-dmac: Do not dereference NULL structure 2023-03-10 09:33:39 +01:00
dw-edma dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing 2023-05-17 11:48:05 +02:00
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools 2024-02-16 19:06:24 +01:00
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers 2023-11-20 11:52:10 +01:00
ioat dmaengine: ioat: Free up __cleanup() name 2024-02-23 09:12:51 +01:00
ipu
lgm dmaengine: lgm: Move DT parsing after initialization 2023-01-24 07:24:39 +01:00
mediatek dmaengine: mediatek: Fix deadlock caused by synchronize_irq() 2023-10-19 23:08:58 +02:00
ppc4xx
ptdma dmaengine: ptdma: use consistent DMA masks 2024-03-06 14:45:10 +00:00
qcom dma: gpi: remove spurious unlock in gpi_ch_init 2023-05-11 23:03:37 +09:00
sf-pdma dmaengine: sf-pdma: pdma_desc memory leak fix 2023-03-10 09:33:39 +01:00
sh dmaengine: shdma: increase size of 'dev_id' 2024-03-01 13:26:25 +01:00
ti dmaengine: ti: edma: Add some null pointer checks to the edma_probe 2024-03-01 13:26:26 +01:00
xilinx dmaengine: xilinx_dma: call of_node_put() when breaking out of for_each_child_of_node() 2023-02-01 08:34:24 +01:00
acpi-dma.c
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:26:25 +01:00
at_hdmac.c dmaengine: at_hdmac: Check return code of dma_async_device_register 2022-11-16 09:57:20 +01:00
at_hdmac_regs.h dmaengine: at_hdmac: Fix at_lli struct definition 2022-11-16 09:57:17 +01:00
at_xdmac.c dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved() 2023-06-09 10:33:59 +02:00
bcm-sba-raid.c
bcm2835-dma.c
dma-axi-dmac.c dmaengine: axi-dmac: check cache coherency register 2022-07-26 22:05:20 +05:30
dma-jz4780.c dmaengine: jz4780: fix typo in comment 2022-07-06 10:51:43 +05:30
dmaengine.c dmaengine: fix NULL pointer in channel unregistration function 2024-01-31 16:17:00 -08:00
dmaengine.h
dmatest.c treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
ep93xx_dma.c dmaengine: ep93xx: Fix typo in comments 2022-07-01 21:50:23 +05:30
fsl-edma-common.c dmaengine: fsl-edma: remove redundant assignment to pointer last_sg 2022-07-01 22:09:16 +05:30
fsl-edma-common.h
fsl-edma.c
fsl-qdma.c dmaengine: fsl-qdma: init irq after reg initialization 2024-03-06 14:45:10 +00:00
fsl_raid.c
fsl_raid.h
fsldma.c
fsldma.h
hisi_dma.c dmaengine: hisilicon: Add multi-thread support for a DMA channel 2022-10-26 13:25:34 +02:00
idma64.c
idma64.h
img-mdc-dma.c
imx-dma.c dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t) 2022-07-21 18:08:35 +05:30
imx-sdma.c dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init 2023-02-06 08:06:33 +01:00
iop-adma.c
iop-adma.h
k3dma.c
Kconfig dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA 2024-03-26 18:20:45 -04:00
lpc18xx-dmamux.c
Makefile
mcf-edma.c dmaengine: mcf-edma: Fix a potential un-allocated memory access 2023-08-16 18:27:28 +02:00
milbeaut-hdmac.c
milbeaut-xdmac.c
mmp_pdma.c
mmp_tdma.c
moxart-dma.c
mpc512x_dma.c
mv_xor.c
mv_xor.h
mv_xor_v2.c dmaengine: mv_xor_v2: Fix an error code. 2023-05-17 11:48:04 +02:00
mxs-dma.c dmaengine: mxs: use platform_driver_register 2022-10-30 09:41:18 +01:00
nbpfaxi.c
of-dma.c
owl-dma.c dmaengine: owl-dma: Modify mismatched function name 2023-08-16 18:27:28 +02:00
pch_dma.c
pl330.c dmaengine: pl330: Optimize scatterlist transfer 2024-08-29 14:24:37 +08:00
plx_dma.c
pxa_dma.c dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() 2023-11-20 11:52:10 +01:00
s3c24xx-dma.c dmaengine: virt-dma: Fix double word in comments 2022-09-29 12:22:27 +05:30
sa11x0-dma.c
sprd-dma.c dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed 2022-08-25 11:38:17 +02:00
st_fdma.c
st_fdma.h
ste_dma40.c dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe 2023-11-08 14:10:58 +01:00
ste_dma40_ll.c
ste_dma40_ll.h
stm32-dma.c dmaengine: stm32-dma: avoid bitfield overflow assertion 2023-12-20 17:00:25 +01:00
stm32-dmamux.c dmaengine: stm32-dmamux: Simplify code and save a few bytes of memory 2022-09-05 11:52:28 +05:30
stm32-mdma.c dmaengine: stm32-mdma: correct desc prep when channel running 2023-11-28 17:07:13 +00:00
sun4i-dma.c dmaengine: sun4i: Set the maximum segment size 2022-07-05 18:34:26 +05:30
sun6i-dma.c
tegra20-apb-dma.c
tegra186-gpc-dma.c dmaengine: tegra: Fix memory leak in terminate_all() 2023-02-01 08:34:24 +01:00
tegra210-adma.c dmaengine: tegra210-adma: fix global intr clear 2023-01-24 07:24:39 +01:00
timb_dma.c
TODO
txx9dmac.c
txx9dmac.h
uniphier-mdmac.c
uniphier-xdmac.c
virt-dma.c
virt-dma.h
xgene-dma.c