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/01/26 03:13:26 UTC

[incubator-nuttx] branch master updated: drivers: wireless: Fix _read_data() in gs2200m.c

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 c6ed7dd  drivers: wireless: Fix _read_data() in gs2200m.c
c6ed7dd is described below

commit c6ed7dd7606e7e00599f857e6731a99d073c45a4
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Tue Jan 26 08:23:58 2021 +0900

    drivers: wireless: Fix _read_data() in gs2200m.c
    
    Summary:
    - During reviewing the GS2200M document, I noticed that
       _read_data() implementation is incorrect.
    - Actually, we do not use "SPI Byte Stuffing for SPI-NO-DMA"
      but use "SPI Command Response (SPI-DMA)", so the sequence
      should use SPI_RECVBLOCK().
    
    Impact:
    - gs2200m.c only
    
    Testing:
    - Tested with stm32f4discovery:wifi and spresense:wifi_smp
    
    Signed-off-by: Masayuki Ishikawa <Ma...@jp.sony.com>
---
 drivers/wireless/gs2200m.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/wireless/gs2200m.c b/drivers/wireless/gs2200m.c
index 0c7b739..7e6c590 100644
--- a/drivers/wireless/gs2200m.c
+++ b/drivers/wireless/gs2200m.c
@@ -828,19 +828,17 @@ static void _write_data(FAR struct gs2200m_dev_s *dev,
 
 /****************************************************************************
  * Name: _read_data
- * NOTE: See 3.2.2.1 SPI Byte Stuffing for the idle character
+ * NOTE: See 3.2.2.2 SPI Command Response (SPI-DMA)
  ****************************************************************************/
 
 static void _read_data(FAR struct gs2200m_dev_s *dev,
                        FAR uint8_t  *buff,
                        FAR uint16_t len)
 {
-  uint8_t req = 0xf5; /* idle character */
-
   memset(buff, 0, len);
 
   SPI_SELECT(dev->spi, SPIDEV_WIRELESS(0), true);
-  SPI_EXCHANGE(dev->spi, &req, buff, len);
+  SPI_RECVBLOCK(dev->spi, buff, len);
   SPI_SELECT(dev->spi, SPIDEV_WIRELESS(0), false);
 }