diff options
Diffstat (limited to 'drivers/mtd/mtdcore.c')
-rw-r--r-- | drivers/mtd/mtdcore.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index a9d24694982..76fe0a1e7a5 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c | |||
@@ -57,6 +57,19 @@ int add_mtd_device(struct mtd_info *mtd) | |||
57 | mtd->index = i; | 57 | mtd->index = i; |
58 | mtd->usecount = 0; | 58 | mtd->usecount = 0; |
59 | 59 | ||
60 | if (is_power_of_2(mtd->erasesize)) | ||
61 | mtd->erasesize_shift = ffs(mtd->erasesize) - 1; | ||
62 | else | ||
63 | mtd->erasesize_shift = 0; | ||
64 | |||
65 | if (is_power_of_2(mtd->writesize)) | ||
66 | mtd->writesize_shift = ffs(mtd->writesize) - 1; | ||
67 | else | ||
68 | mtd->writesize_shift = 0; | ||
69 | |||
70 | mtd->erasesize_mask = (1 << mtd->erasesize_shift) - 1; | ||
71 | mtd->writesize_mask = (1 << mtd->writesize_shift) - 1; | ||
72 | |||
60 | /* Some chips always power up locked. Unlock them now */ | 73 | /* Some chips always power up locked. Unlock them now */ |
61 | if ((mtd->flags & MTD_WRITEABLE) | 74 | if ((mtd->flags & MTD_WRITEABLE) |
62 | && (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) { | 75 | && (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) { |
@@ -344,7 +357,8 @@ static inline int mtd_proc_info (char *buf, int i) | |||
344 | if (!this) | 357 | if (!this) |
345 | return 0; | 358 | return 0; |
346 | 359 | ||
347 | return sprintf(buf, "mtd%d: %8.8x %8.8x \"%s\"\n", i, this->size, | 360 | return sprintf(buf, "mtd%d: %8.8llx %8.8x \"%s\"\n", i, |
361 | (unsigned long long)this->size, | ||
348 | this->erasesize, this->name); | 362 | this->erasesize, this->name); |
349 | } | 363 | } |
350 | 364 | ||