diff --git a/82802ab.c b/82802ab.c
index ac42bb9..2600642 100644
--- a/82802ab.c
+++ b/82802ab.c
@@ -162,13 +162,7 @@
 
 int write_82802ab(struct flashchip *flash, uint8_t *buf)
 {
-	int i;
-
-	for (i = 0; i < flash->total_size; i++) {
-                write_page_82802ab(flash, buf + i * 1024, i * 1024, 1024);
-	}
-
-	return 0;
+	return write_page_82802ab(flash, buf, 0, flash->total_size * 1024);
 }
 
 int unlock_28f004s5(struct flashchip *flash)
diff --git a/jedec.c b/jedec.c
index 7e956e2..6146fc4 100644
--- a/jedec.c
+++ b/jedec.c
@@ -411,16 +411,11 @@
 
 int write_jedec_1(struct flashchip *flash, uint8_t * buf)
 {
-	int i;
 	int mask;
 
 	mask = getaddrmask(flash);
 
-	for (i = 0; i < flash->total_size; i++) {
-		write_sector_jedec_common(flash, buf + i * 1024, i * 1024, 1024, mask);
-	}
-
-	return 0;
+	return write_sector_jedec_common(flash, buf, 0, flash->total_size * 1024, mask);
 }
 
 /* erase chip with block_erase() prototype */
diff --git a/m29f400bt.c b/m29f400bt.c
index 98e0762..e990d9d 100644
--- a/m29f400bt.c
+++ b/m29f400bt.c
@@ -142,18 +142,5 @@
 
 int write_m29f400bt(struct flashchip *flash, uint8_t *buf)
 {
-	int i;
-	int total_size = flash->total_size * 1024;
-	int page_size = flash->page_size;
-
-	for (i = 0; i < (total_size / page_size) - 1; i++) {
-		write_page_m29f400bt(flash, buf + i * page_size, i * page_size, page_size);
-	}
-
-	write_page_m29f400bt(flash, buf + 0x70000, 0x70000, 32 * 1024);
-	write_page_m29f400bt(flash, buf + 0x78000, 0x78000, 8 * 1024);
-	write_page_m29f400bt(flash, buf + 0x7a000, 0x7a000, 8 * 1024);
-	write_page_m29f400bt(flash, buf + 0x7c000, 0x7c000, 16 * 1024);
-
-	return 0;
+	return write_page_m29f400bt(flash, buf, 0, flash->total_size * 1024);
 }
diff --git a/sharplhf00l04.c b/sharplhf00l04.c
index bb3e359..f21950a 100644
--- a/sharplhf00l04.c
+++ b/sharplhf00l04.c
@@ -56,16 +56,3 @@
 	}
 	return 0;
 }
-
-int write_lhf00l04(struct flashchip *flash, uint8_t *buf)
-{
-	int i;
-	int total_size = flash->total_size * 1024;
-	int page_size = flash->page_size;
-
-	for (i = 0; i < total_size / page_size; i++) {
-		write_page_82802ab(flash, buf + i * page_size, i * page_size, page_size);
-	}
-
-	return 0;
-}
diff --git a/sst28sf040.c b/sst28sf040.c
index 2de876b..ba22093 100644
--- a/sst28sf040.c
+++ b/sst28sf040.c
@@ -118,15 +118,9 @@
 
 int write_28sf040(struct flashchip *flash, uint8_t *buf)
 {
-	int i;
-	int total_size = flash->total_size * 1024;
-	int page_size = flash->page_size;
-
 	unprotect_28sf040(flash);
 
-	for (i = 0; i < total_size / page_size; i++) {
-		write_sector_28sf040(flash, buf + i * page_size, i * page_size, page_size);
-	}
+	write_sector_28sf040(flash, buf, 0, flash->total_size * 1024);
 
 	protect_28sf040(flash);
 
diff --git a/sst49lfxxxc.c b/sst49lfxxxc.c
index ec7d3da..c682be3 100644
--- a/sst49lfxxxc.c
+++ b/sst49lfxxxc.c
@@ -78,15 +78,10 @@
 
 int write_49lfxxxc(struct flashchip *flash, uint8_t *buf)
 {
-	int i;
-	int total_size = flash->total_size * 1024;
-	int page_size = flash->page_size;
 	chipaddr bios = flash->virtual_memory;
 
 	write_lockbits_49lfxxxc(flash, 0);
-	for (i = 0; i < total_size / page_size; i++) {
-		write_page_82802ab(flash, buf + i * page_size, i * page_size, page_size);
-	}
+	write_page_82802ab(flash, buf, 0, flash->total_size * 1024);
 
 	chip_writeb(0xFF, bios);
 
