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 2021/03/15 05:21:28 UTC

[incubator-nuttx] branch master updated: arm/rp2040: Fix SPI halfword DMA transfer

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/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 40fe666  arm/rp2040: Fix SPI halfword DMA transfer
40fe666 is described below

commit 40fe666d3f40d0bb196f08037038c1e483341c25
Author: Yuichi Nakamura <y....@gmail.com>
AuthorDate: Mon Mar 15 07:55:21 2021 +0900

    arm/rp2040: Fix SPI halfword DMA transfer
---
 arch/arm/src/rp2040/rp2040_dmac.c | 4 ++--
 arch/arm/src/rp2040/rp2040_spi.c  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/src/rp2040/rp2040_dmac.c b/arch/arm/src/rp2040/rp2040_dmac.c
index b41f2ec..b50423f 100644
--- a/arch/arm/src/rp2040/rp2040_dmac.c
+++ b/arch/arm/src/rp2040/rp2040_dmac.c
@@ -357,7 +357,7 @@ void rp2040_rxdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr,
           RP2040_DMA_CTRL_TRIG_TREQ_SEL_MASK) |
          ((ch << RP2040_DMA_CTRL_TRIG_CHAIN_TO_SHIFT) &
           RP2040_DMA_CTRL_TRIG_CHAIN_TO_MASK) |
-         config.size;
+         (config.size << RP2040_DMA_CTRL_TRIG_DATA_SIZE_SHIFT);
 
   if (!config.noincr)
     {
@@ -418,7 +418,7 @@ void rp2040_txdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr,
           RP2040_DMA_CTRL_TRIG_TREQ_SEL_MASK) |
          ((ch << RP2040_DMA_CTRL_TRIG_CHAIN_TO_SHIFT) &
           RP2040_DMA_CTRL_TRIG_CHAIN_TO_MASK) |
-         config.size;
+         (config.size << RP2040_DMA_CTRL_TRIG_DATA_SIZE_SHIFT);
 
   if (!config.noincr)
     {
diff --git a/arch/arm/src/rp2040/rp2040_spi.c b/arch/arm/src/rp2040/rp2040_spi.c
index 4f67dbf..9d1e527 100644
--- a/arch/arm/src/rp2040/rp2040_spi.c
+++ b/arch/arm/src/rp2040/rp2040_spi.c
@@ -1070,7 +1070,7 @@ static void spi_dmatxsetup(FAR struct rp2040_spidev_s *priv,
     }
 
   rp2040_txdmasetup(priv->txdmach, (uintptr_t)dst, (uintptr_t)txbuffer,
-                   nwords, priv->txconfig);
+                   nwords << priv->txconfig.size, priv->txconfig);
 }
 
 /****************************************************************************
@@ -1110,7 +1110,7 @@ static void spi_dmarxsetup(FAR struct rp2040_spidev_s *priv,
     }
 
   rp2040_rxdmasetup(priv->rxdmach, (uintptr_t)src, (uintptr_t)rxbuffer,
-                   nwords, priv->rxconfig);
+                   nwords << priv->rxconfig.size, priv->rxconfig);
 }
 
 /****************************************************************************