(nuttx) 01/02: arch: cxd56xx: Fix DMA transfer for large memory size
This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch releases/12.13 in repository https://gitbox.apache.org/repos/asf/nuttx.git commit ed0338a1dff6db817af99b1e94646ea618136f3d Author: SPRESENSE <[email protected]> AuthorDate: Wed Mar 25 17:23:25 2026 +0900 arch: cxd56xx: Fix DMA transfer for large memory size When using a dummy memory address in DMA LLI transfers, do not update the memory address. Signed-off-by: SPRESENSE <[email protected]> --- arch/arm/src/cxd56xx/cxd56_dmac.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/cxd56xx/cxd56_dmac.c b/arch/arm/src/cxd56xx/cxd56_dmac.c index 22d931cd3b1..54100990dcb 100644 --- a/arch/arm/src/cxd56xx/cxd56_dmac.c +++ b/arch/arm/src/cxd56xx/cxd56_dmac.c @@ -941,7 +941,11 @@ void cxd56_rxdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, CXD56_DMAC_BSIZE4, CXD56_DMAC_BSIZE4, /* Dest / Src burst size (fixed) */ CXD56_DMAC_MAX_SIZE); - dst += CXD56_DMAC_MAX_SIZE; + if (di) +{ + dst += CXD56_DMAC_MAX_SIZE; +} + rest -= CXD56_DMAC_MAX_SIZE; } @@ -1012,7 +1016,11 @@ void cxd56_txdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, CXD56_DMAC_BSIZE1, CXD56_DMAC_BSIZE1, /* Dest / Src burst size (fixed) */ CXD56_DMAC_MAX_SIZE); - src += CXD56_DMAC_MAX_SIZE; + if (si) +{ + src += CXD56_DMAC_MAX_SIZE; +} + rest -= CXD56_DMAC_MAX_SIZE; }
(nuttx) 01/02: arch: cxd56xx: Fix DMA transfer for large memory size
This is an automated email from the ASF dual-hosted git repository. archer pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git commit 48e9de51f998e313684b653c5346e37cc3e3190b Author: SPRESENSE <[email protected]> AuthorDate: Wed Mar 25 17:23:25 2026 +0900 arch: cxd56xx: Fix DMA transfer for large memory size When using a dummy memory address in DMA LLI transfers, do not update the memory address. Signed-off-by: SPRESENSE <[email protected]> --- arch/arm/src/cxd56xx/cxd56_dmac.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/cxd56xx/cxd56_dmac.c b/arch/arm/src/cxd56xx/cxd56_dmac.c index 22d931cd3b1..54100990dcb 100644 --- a/arch/arm/src/cxd56xx/cxd56_dmac.c +++ b/arch/arm/src/cxd56xx/cxd56_dmac.c @@ -941,7 +941,11 @@ void cxd56_rxdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, CXD56_DMAC_BSIZE4, CXD56_DMAC_BSIZE4, /* Dest / Src burst size (fixed) */ CXD56_DMAC_MAX_SIZE); - dst += CXD56_DMAC_MAX_SIZE; + if (di) +{ + dst += CXD56_DMAC_MAX_SIZE; +} + rest -= CXD56_DMAC_MAX_SIZE; } @@ -1012,7 +1016,11 @@ void cxd56_txdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, CXD56_DMAC_BSIZE1, CXD56_DMAC_BSIZE1, /* Dest / Src burst size (fixed) */ CXD56_DMAC_MAX_SIZE); - src += CXD56_DMAC_MAX_SIZE; + if (si) +{ + src += CXD56_DMAC_MAX_SIZE; +} + rest -= CXD56_DMAC_MAX_SIZE; }
