summaryrefslogtreecommitdiffstats
path: root/wbsio_spi.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-08-10 02:29:21 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-08-10 02:29:21 +0000
commit116081a224c3b36a4a7d940cfdb1dac1ba35fc75 (patch)
treee82fbd5e39ffa638a9f56d93e90f0f520d392a53 /wbsio_spi.c
parentdb41c59e3ba625659e397675384b08b4ec967fe6 (diff)
downloadast2050-flashrom-116081a224c3b36a4a7d940cfdb1dac1ba35fc75.zip
ast2050-flashrom-116081a224c3b36a4a7d940cfdb1dac1ba35fc75.tar.gz
Replace remaining explicit erases in SPI programmer drivers with auto-erases
Some SPI chip drivers and the generic 1-byte SPI chip write functions didn't include the automatic erase present in other chip drivers. Since the majority is definitely auto-erase, change the remaining explicit-erase cases to be auto-erase as well. Corresponding to flashrom svn r673. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Carlos Arnau Perez <cemede@gmail.com>
Diffstat (limited to 'wbsio_spi.c')
-rw-r--r--wbsio_spi.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/wbsio_spi.c b/wbsio_spi.c
index ded0840..6b9425f 100644
--- a/wbsio_spi.c
+++ b/wbsio_spi.c
@@ -183,29 +183,17 @@ int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
return 1;
}
- read_memmapped(flash, buf, start, len);
- return 0;
+ return read_memmapped(flash, buf, start, len);
}
int wbsio_spi_write_1(struct flashchip *flash, uint8_t *buf)
{
- int pos, size = flash->total_size * 1024;
- int result;
+ int size = flash->total_size * 1024;
- if (flash->total_size > 1024) {
+ if (size > 1024 * 1024) {
fprintf(stderr, "%s: Winbond saved on 4 register bits so max chip size is 1024 KB!\n", __func__);
return 1;
}
- if (flash->erase(flash)) {
- fprintf(stderr, "ERASE FAILED!\n");
- return -1;
- }
- for (pos = 0; pos < size; pos++) {
- result = spi_byte_program(pos, buf[pos]);
- while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
- programmer_delay(10);
- }
- spi_write_disable();
- return 0;
+ return spi_chip_write_1(flash, buf);
}
OpenPOWER on IntegriCloud