From d17c80e7ebf824d76c2a5a34d78c8ad94e9ed28c Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Thu, 22 Jun 2017 17:38:58 +0200 Subject: [PATCH] spi: flash: provide the proper length of the buffer in flash_write() --- source/drivers/spi_flash.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/drivers/spi_flash.c b/source/drivers/spi_flash.c index 1b371cd..40dc45a 100644 --- a/source/drivers/spi_flash.c +++ b/source/drivers/spi_flash.c @@ -126,15 +126,14 @@ static size_t spi_flash_write(struct flash_dev *dev, uint32_t addr, spi_flash_write_enable(dev); while (len) { - spi_flash_wait(dev); - cmd[0] = SPI_FLASH_PAGE_PROGRAM; spi_flash_addr(cmd, addr); nbytes = min(len, 32); memmove(cmd + 4, data, nbytes); - spi_tx_rx(spi_dev, NULL, 0, cmd, sizeof cmd); + spi_tx_rx(spi_dev, NULL, 0, cmd, 4 + nbytes); + spi_flash_wait(dev); addr += nbytes; data += nbytes; @@ -142,7 +141,6 @@ static size_t spi_flash_write(struct flash_dev *dev, uint32_t addr, ret += nbytes; } - spi_flash_wait(dev); spi_flash_write_disable(dev); return ret;