(nuttx) 01/02: arch: cxd56xx: Fix DMA transfer for large memory size

2026-03-27 Thread xiaoxiang
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

2026-03-25 Thread archer
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;
 }