brcm47xx: add initial support for kernel 3.8
[openwrt.git] / target / linux / brcm47xx / patches-3.8 / 022-mtd-bcm47xxpart-add-support-for-other-erase-sizes.patch
diff --git a/target/linux/brcm47xx/patches-3.8/022-mtd-bcm47xxpart-add-support-for-other-erase-sizes.patch b/target/linux/brcm47xx/patches-3.8/022-mtd-bcm47xxpart-add-support-for-other-erase-sizes.patch
new file mode 100644 (file)
index 0000000..4a89de1
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/drivers/mtd/bcm47xxpart.c
++++ b/drivers/mtd/bcm47xxpart.c
+@@ -59,11 +59,14 @@ static int bcm47xxpart_parse(struct mtd_
+       uint32_t *buf;
+       size_t bytes_read;
+       uint32_t offset;
+-      uint32_t blocksize = 0x10000;
++      uint32_t blocksize = master->erasesize;
+       struct trx_header *trx;
+       int trx_part = -1;
+       int last_trx_part = -1;
++      if (blocksize <= 0x10000)
++              blocksize = 0x10000;
++
+       /* Alloc */
+       parts = kzalloc(sizeof(struct mtd_partition) * BCM47XXPART_MAX_PARTS,
+                       GFP_KERNEL);