You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2023/05/20 10:32:08 UTC
[nuttx] 01/03: kinetis:edma {s|d}last needs to be total xfer size
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit cd92cf44969bf4e178283fba34d972956c9a2a3e
Author: David Sidrane <Da...@NscDg.com>
AuthorDate: Sat May 20 00:24:44 2023 -0700
kinetis:edma {s|d}last needs to be total xfer size
---
arch/arm/src/kinetis/kinetis_edma.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/arm/src/kinetis/kinetis_edma.c b/arch/arm/src/kinetis/kinetis_edma.c
index c2da8d2e45..753b719348 100644
--- a/arch/arm/src/kinetis/kinetis_edma.c
+++ b/arch/arm/src/kinetis/kinetis_edma.c
@@ -364,7 +364,9 @@ static inline void kinetis_tcd_configure(struct kinetis_edmatcd_s *tcd,
tcd->attr = EDMA_TCD_ATTR_SSIZE(config->ssize) | /* Transfer Attributes */
EDMA_TCD_ATTR_DSIZE(config->dsize);
tcd->nbytes = config->nbytes;
- tcd->slast = config->flags & EDMA_CONFIG_LOOPSRC ? -config->iter : 0;
+ tcd->slast = config->flags & EDMA_CONFIG_LOOPSRC ?
+ -(config->iter * config->nbytes) : 0;
+
tcd->daddr = config->daddr;
tcd->doff = config->doff;
tcd->citer = config->iter & EDMA_TCD_CITER_CITER_MASK;
@@ -373,7 +375,8 @@ static inline void kinetis_tcd_configure(struct kinetis_edmatcd_s *tcd,
0 : EDMA_TCD_CSR_DREQ;
tcd->csr |= config->flags & EDMA_CONFIG_INTHALF ?
EDMA_TCD_CSR_INTHALF : 0;
- tcd->dlastsga = config->flags & EDMA_CONFIG_LOOPDEST ? -config->iter : 0;
+ tcd->dlastsga = config->flags & EDMA_CONFIG_LOOPDEST ?
+ -(config->iter * config->nbytes) : 0;
/* And special case flags */