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>
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 @@
 		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);
 }