diff --git a/sst49lf040.c b/sst49lf040.c
index 03e0f5a..ace2f1a 100644
--- a/sst49lf040.c
+++ b/sst49lf040.c
@@ -38,27 +38,29 @@
 #define READ_ID			0x90
 
 
-int write_49lf040 (struct flashchip * flash, unsigned char * buf)
+int write_49lf040(struct flashchip *flash, unsigned char *buf)
 {
 	int i;
-	int total_size = flash->total_size * 1024, page_size = flash->page_size;
-	volatile char * bios = flash->virt_addr;
+	int total_size = flash->total_size * 1024, page_size =
+	    flash->page_size;
+	volatile char *bios = flash->virt_addr;
 
-	printf ("Programming Page: ");
-	for (i = 0; i < total_size/page_size; i++) {
+	printf("Programming Page: ");
+	for (i = 0; i < total_size / page_size; i++) {
 		/* erase the page before programming
 		 * Chip erase only works in parallel programming mode for the 49lf040.
 		 * Use sector-erase instead */
 		erase_sector_jedec(bios, i * page_size);
 
 		/* write to the sector */
-		printf ("%04d at address: 0x%08x ", i, i * page_size);
-		write_sector_jedec(bios, buf + i * page_size, bios + i * page_size,
-				   page_size);
-		printf ("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
-                fflush(stdout);
+		printf("%04d at address: 0x%08x ", i, i * page_size);
+		write_sector_jedec(bios, buf + i * page_size,
+				   bios + i * page_size, page_size);
+		printf
+		    ("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
+		fflush(stdout);
 	}
 	printf("\n");
 
-	return(0);
+	return (0);
 }
