summaryrefslogtreecommitdiffstats
path: root/dediprog.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-11-23 21:28:16 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-11-23 21:28:16 +0000
commit306b81875dc8c16b230f9b01f37138aa4768d116 (patch)
tree25a7b11b90f5f98c0638387d606c6680d0f71e5c /dediprog.c
parent482e97443dac5158b6bf48af1b7636a9388debf6 (diff)
downloadast2050-flashrom-306b81875dc8c16b230f9b01f37138aa4768d116.zip
ast2050-flashrom-306b81875dc8c16b230f9b01f37138aa4768d116.tar.gz
Add chunked write ability to the Dediprog SF100 driver
Please note that the write speedup only applies to chips which have SPI page write (i.e. chips using spi_chip_write_256). This is a quick fix for write speed until I get around to implementing full bulk SPI write support. Corresponding to flashrom svn r1235. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Richard A. Smith <richard@laptop.org> Acked-by: Mathias Krause <mathias.krause@secunet.com>
Diffstat (limited to 'dediprog.c')
-rw-r--r--dediprog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/dediprog.c b/dediprog.c
index a6db17c..bbe7c86 100644
--- a/dediprog.c
+++ b/dediprog.c
@@ -238,6 +238,12 @@ int dediprog_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
return 0;
}
+int dediprog_spi_write_256(struct flashchip *flash, uint8_t *buf, int start, int len)
+{
+ /* No idea about the real limit. Maybe 12, maybe more, maybe less. */
+ return spi_write_chunked(flash, buf, start, len, 12);
+}
+
int dediprog_spi_send_command(unsigned int writecnt, unsigned int readcnt,
const unsigned char *writearr, unsigned char *readarr)
{
@@ -245,7 +251,7 @@ int dediprog_spi_send_command(unsigned int writecnt, unsigned int readcnt,
msg_pspew("%s, writecnt=%i, readcnt=%i\n", __func__, writecnt, readcnt);
/* Paranoid, but I don't want to be blamed if anything explodes. */
- if (writecnt > 5) {
+ if (writecnt > 16) {
msg_perr("Untested writecnt=%i, aborting.\n", writecnt);
return 1;
}
OpenPOWER on IntegriCloud