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);
}