summaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-01-24 17:39:58 +0100
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2013-02-04 09:31:33 +0100
commit25bad1d3c9f5616aaa50849300248d03141574a0 (patch)
treebcde3c97cb3fc0d762ec4457ab3953671c93330d /drivers/mtd
parentmtd: bcm47xxnflash: register this as normal driver (diff)
downloadlinux-25bad1d3c9f5616aaa50849300248d03141574a0.tar.xz
linux-25bad1d3c9f5616aaa50849300248d03141574a0.zip
mtd: bcm47xxpart: add support for other erase sizes
To make the partitions writable they should aligned to erase sizes of the flash. If the erase size is small use 0x10000. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/bcm47xxpart.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c
index 3411bc2a1482..986ab6ef3181 100644
--- a/drivers/mtd/bcm47xxpart.c
+++ b/drivers/mtd/bcm47xxpart.c
@@ -59,11 +59,14 @@ static int bcm47xxpart_parse(struct mtd_info *master,
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);