spi: flash: provide the proper length of the buffer in flash_write()

tags/0.1.0
S.J.R. van Schaik 8 years ago
parent 24f7c7b96a
commit d17c80e7eb
  1. 6
      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;

Loading…
Cancel
Save