From cad51f874c899ef0340e96a090c7c7319c5b275d Mon Sep 17 00:00:00 2001 From: Chien Hung Lin Date: Tue, 29 Aug 2023 15:11:12 -0700 Subject: [PATCH] driver: wifi: eswifi: Fix spi buffer length The eswifi spi driver sets up spi buffer length as number of frames, but the length shall be number of bytes. Because eswifi use 16 bit as frame size, so this turns out reading and writing half of data and fails to sending any at command request and getting any responds from eswifi module. Fix it by setting up length as number of bytes. Fixes #62056 Signed-off-by: Chien Hung Lin --- drivers/wifi/eswifi/eswifi_bus_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/wifi/eswifi/eswifi_bus_spi.c b/drivers/wifi/eswifi/eswifi_bus_spi.c index a80e37f414a..edade1ffdf8 100644 --- a/drivers/wifi/eswifi/eswifi_bus_spi.c +++ b/drivers/wifi/eswifi/eswifi_bus_spi.c @@ -66,7 +66,7 @@ static int eswifi_spi_write(struct eswifi_dev *eswifi, char *data, size_t dlen) int status; spi_tx_buf[0].buf = data; - spi_tx_buf[0].len = dlen / 2; /* 16-bit words */ + spi_tx_buf[0].len = dlen; spi_tx.buffers = spi_tx_buf; spi_tx.count = ARRAY_SIZE(spi_tx_buf); @@ -88,7 +88,7 @@ static int eswifi_spi_read(struct eswifi_dev *eswifi, char *data, size_t dlen) int status; spi_rx_buf[0].buf = data; - spi_rx_buf[0].len = dlen / 2; /* 16-bit words */ + spi_rx_buf[0].len = dlen; spi_rx.buffers = spi_rx_buf; spi_rx.count = ARRAY_SIZE(spi_rx_buf);