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>
diff --git a/dediprog.c b/dediprog.c
index a6db17c..bbe7c86 100644
--- a/dediprog.c
+++ b/dediprog.c
@@ -238,6 +238,12 @@
 	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 @@
 
 	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;
 	}
diff --git a/programmer.h b/programmer.h
index ed9d0b2..a447092 100644
--- a/programmer.h
+++ b/programmer.h
@@ -472,6 +472,7 @@
 int dediprog_shutdown(void);
 int dediprog_spi_send_command(unsigned int writecnt, unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr);
 int dediprog_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len);
+int dediprog_spi_write_256(struct flashchip *flash, uint8_t *buf, int start, int len);
 
 /* flashrom.c */
 struct decode_sizes {
diff --git a/spi.c b/spi.c
index 1fc72d4..3df7458 100644
--- a/spi.c
+++ b/spi.c
@@ -124,7 +124,7 @@
 		.command = dediprog_spi_send_command,
 		.multicommand = default_spi_send_multicommand,
 		.read = dediprog_spi_read,
-		.write_256 = spi_chip_write_1,
+		.write_256 = dediprog_spi_write_256,
 	},
 #endif