]> git.ipfire.org Git - thirdparty/linux.git/commit
dma: dma-axi-dmac: support bigger than 32bits addresses
authorNuno Sá <nuno.sa@analog.com>
Tue, 4 Nov 2025 16:22:27 +0000 (16:22 +0000)
committerVinod Koul <vkoul@kernel.org>
Tue, 23 Dec 2025 11:13:15 +0000 (16:43 +0530)
commitb2440442ccb68479fa6d307917419983f3c87e83
tree5d0ce6f5994f27ceef70ab4fb2ef7e3c5241acdc
parentbbcbafb99df41a1d81403eb4f5bb443b38228b57
dma: dma-axi-dmac: support bigger than 32bits addresses

In some supported platforms as ARCH_ZYNQMP, part of the memory is mapped
above 32bit addresses and since the DMA mask, by default, is set to 32bits,
we would need to rely on swiotlb (which incurs a performance penalty)
for the DMA mappings. Thus, we can write either the SRC or DEST high
addresses with 1's and read them back. The last bit set on the return
value will reflect the IP address bus width and so we can update the
device DMA mask accordingly.

While at it, support bigger that 32 bits transfers in IP without HW
scatter gather support.

Signed-off-by: Nuno Sá <nuno.sa@analog.com>
base-commit: 398035178503bf662281bbffb4bebce1460a4bc5
change-id: 20251104-axi-dmac-fixes-and-improvs-e3ad512a329c
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Link: https://patch.msgid.link/20251104-axi-dmac-fixes-and-improvs-v1-3-3e6fd9328f72@analog.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/dma-axi-dmac.c