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
The following commit(s) were added to refs/heads/master by this push: new ba411fb53d Wrong dlastsga or slast setting if doff or soff larger than one ba411fb53d is described below commit ba411fb53d7ceb59685ecc477e93fe21bd83c80e Author: jturnsek <jernej.turn...@gmail.com> AuthorDate: Thu May 18 20:57:17 2023 +0200 Wrong dlastsga or slast setting if doff or soff larger than one --- arch/arm/src/imxrt/imxrt_edma.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/imxrt/imxrt_edma.c b/arch/arm/src/imxrt/imxrt_edma.c index a1ced125a0..ad16fe023b 100644 --- a/arch/arm/src/imxrt/imxrt_edma.c +++ b/arch/arm/src/imxrt/imxrt_edma.c @@ -362,7 +362,8 @@ static inline void imxrt_tcd_configure(struct imxrt_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; @@ -371,7 +372,8 @@ static inline void imxrt_tcd_configure(struct imxrt_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 */