Move implicit erase out of chip drivers

Flashrom had an implicit erase-on-write for most flash chip and
programmer drivers, but it was not entirely consistent.

Some drivers had their own hand-rolled partial update functionality
which made handling partial updates from generic code impossible.

Move implicit erase out of chip drivers, and kill some dead erase
functions at the same time. A full chip erase is now performed in the
generic code for all flash chips on write, and after that the whole chip
is written.

Corresponding to flashrom svn r1206.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/stm50flw0x0x.c b/stm50flw0x0x.c
index 6a3b17d..dd6cbe7 100644
--- a/stm50flw0x0x.c
+++ b/stm50flw0x0x.c
@@ -93,6 +93,7 @@
 	return 0;
 }
 
+/* This function is unused. */
 int erase_sector_stm50flw0x0x(struct flashchip *flash, unsigned int sector, unsigned int sectorsize)
 {
 	chipaddr bios = flash->virtual_memory + sector;
@@ -116,6 +117,7 @@
 	return 0;
 }
 
+/* FIXME: This function is not a real chip erase function. */
 int erase_chip_stm50flw0x0x(struct flashchip *flash, unsigned int addr, unsigned int blocklen)
 {
 	int i;