This is an automated email from the ASF dual-hosted git repository.

linguini1 pushed a commit to branch releases/13.0
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/releases/13.0 by this push:
     new ff899ae95da arch/arm: fix DMA transfers with sizes smaller than 4 
bytes.
ff899ae95da is described below

commit ff899ae95da9148b8e924a609a839e154846d03a
Author: Carlos Sanchez <[email protected]>
AuthorDate: Wed Jun 24 10:46:43 2026 +0200

    arch/arm: fix DMA transfers with sizes smaller than 4 bytes.
    
    When the buffer to send has a size not multiple of 4 bytes, 4-byte words
    are sent correctly, but when the code reaches the section to send the
    remaining bytes (1, 2 or 3) it was taking the remaining byte count as origin
    of the copy, instead of the buffer (as it should). This commit fixes it
    to correctly copy from the buffer pointer.
    
    Signed-off-by: Carlos Sanchez <[email protected]>
---
 arch/arm/src/common/stm32/stm32_sdio_m3m4_v1.c | 2 +-
 arch/arm/src/stm32f7/stm32_sdmmc.c             | 2 +-
 arch/arm/src/stm32h7/stm32_sdmmc.c             | 2 +-
 arch/arm/src/stm32l4/stm32l4_sdmmc.c           | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/src/common/stm32/stm32_sdio_m3m4_v1.c 
b/arch/arm/src/common/stm32/stm32_sdio_m3m4_v1.c
index 3387e111c4e..460ce937c48 100644
--- a/arch/arm/src/common/stm32/stm32_sdio_m3m4_v1.c
+++ b/arch/arm/src/common/stm32/stm32_sdio_m3m4_v1.c
@@ -1087,7 +1087,7 @@ static void stm32_sendfifo(struct stm32_dev_s *priv)
            * padding with zero as necessary to extend to a full word.
            */
 
-          uint8_t *ptr = (uint8_t *)priv->remaining;
+          uint8_t *ptr = (uint8_t *)priv->buffer;
           int i;
 
           data.w = 0;
diff --git a/arch/arm/src/stm32f7/stm32_sdmmc.c 
b/arch/arm/src/stm32f7/stm32_sdmmc.c
index d82877095a1..772e62572bf 100644
--- a/arch/arm/src/stm32f7/stm32_sdmmc.c
+++ b/arch/arm/src/stm32f7/stm32_sdmmc.c
@@ -1313,7 +1313,7 @@ static void stm32_sendfifo(struct stm32_dev_s *priv)
            * padding with zero as necessary to extend to a full word.
            */
 
-          uint8_t *ptr = (uint8_t *)priv->remaining;
+          uint8_t *ptr = (uint8_t *)priv->buffer;
           int i;
 
           data.w = 0;
diff --git a/arch/arm/src/stm32h7/stm32_sdmmc.c 
b/arch/arm/src/stm32h7/stm32_sdmmc.c
index 2aca3035cd2..0e713eadb07 100644
--- a/arch/arm/src/stm32h7/stm32_sdmmc.c
+++ b/arch/arm/src/stm32h7/stm32_sdmmc.c
@@ -1232,7 +1232,7 @@ static void stm32_sendfifo(struct stm32_dev_s *priv)
            * padding with zero as necessary to extend to a full word.
            */
 
-          uint8_t *ptr = (uint8_t *)priv->remaining;
+          uint8_t *ptr = (uint8_t *)priv->buffer;
           int i;
 
           data.w = 0;
diff --git a/arch/arm/src/stm32l4/stm32l4_sdmmc.c 
b/arch/arm/src/stm32l4/stm32l4_sdmmc.c
index bea2a35c088..3f1aaef30c8 100644
--- a/arch/arm/src/stm32l4/stm32l4_sdmmc.c
+++ b/arch/arm/src/stm32l4/stm32l4_sdmmc.c
@@ -1177,7 +1177,7 @@ static void stm32_sendfifo(struct stm32_dev_s *priv)
            * padding with zero as necessary to extend to a full word.
            */
 
-          uint8_t *ptr = (uint8_t *)priv->remaining;
+          uint8_t *ptr = (uint8_t *)priv->buffer;
           int i;
 
           data.w = 0;

Reply via email to