fix flash map driver for squashfs images for wrt54gs
[openwrt/svn-archive/archive.git] / openwrt / target / linux / linux-2.6 / patches / brcm / 002-flash-map.patch
index 406255b642e7613657a2ae721b80aec89092ca7e..d0917ba6eff5c403d7ed51c4e9624b0b5616bac5 100644 (file)
@@ -1,7 +1,7 @@
 diff -Nur linux-2.6.12.5/drivers/mtd/maps/bcm47xx-flash.c linux-2.6.12.5-flash/drivers/mtd/maps/bcm47xx-flash.c
 --- linux-2.6.12.5/drivers/mtd/maps/bcm47xx-flash.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12.5-flash/drivers/mtd/maps/bcm47xx-flash.c      2005-11-06 20:36:42.553198500 +0100
-@@ -0,0 +1,329 @@
++++ linux-2.6.12.5-flash/drivers/mtd/maps/bcm47xx-flash.c      2005-11-29 12:50:51.416656000 +0100
+@@ -0,0 +1,333 @@
 +/*
 + *  Copyright (C) 2004 Florian Schirmer (jolt@tuxbox.org)
 + *  Copyright (C) 2005 Waldemar Brodkorb <wbx@openwrt.org>
@@ -222,7 +222,7 @@ diff -Nur linux-2.6.12.5/drivers/mtd/maps/bcm47xx-flash.c linux-2.6.12.5-flash/d
 +              bcm947xx_parts[1].size   = bcm947xx_parts[3].offset - 
 +                      bcm947xx_parts[1].offset;
 +      } else {
-+              /* do not count the elf loader, which is on one sector */
++              /* do not count the elf loader, which is on one block */
 +              bcm947xx_parts[1].offset = bcm947xx_parts[0].size + 
 +                      bcm947xx_parts[3].size + mtd->erasesize;
 +              bcm947xx_parts[1].size   = size - 
@@ -248,6 +248,10 @@ diff -Nur linux-2.6.12.5/drivers/mtd/maps/bcm47xx-flash.c linux-2.6.12.5-flash/d
 +              if (cfe_size_flag == 0) {
 +                      bcm947xx_parts[4].offset = bcm947xx_parts[2].offset + 
 +                              bcm947xx_parts[2].size;
++                      if ((bcm947xx_parts[4].offset % mtd->erasesize) > 0) {
++                              bcm947xx_parts[4].offset += mtd->erasesize - 
++                                      (bcm947xx_parts[4].offset % mtd->erasesize);
++                      }
 +                      bcm947xx_parts[4].size = bcm947xx_parts[3].offset - 
 +                              bcm947xx_parts[4].offset;
 +              } else {