diff options
author | Brian Norris <computersforpeace@gmail.com> | 2016-01-06 03:04:40 +0300 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2016-01-06 03:05:56 +0300 |
commit | e576330033936d94a00068760a5744e27ce51a32 (patch) | |
tree | e91b17f2e0820e506a4a6c91afc921a3cea4cd63 /drivers/mtd/mtdcore.c | |
parent | 887e9d3a1f3e93a1c64294649c0dd301035a7892 (diff) | |
parent | a32d5b726ff8cf32bf491522b0ac8ae2545a063e (diff) | |
download | linux-e576330033936d94a00068760a5744e27ce51a32.tar.xz |
mtd: merge MTD development from v4.4 into for-v4.5 development
Small conflict between some bugfixes for 4.4 and some refactoring for
4.5.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'drivers/mtd/mtdcore.c')
-rw-r--r-- | drivers/mtd/mtdcore.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 89d811e7b04a..309625130b21 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -427,15 +427,6 @@ int add_mtd_device(struct mtd_info *mtd) mtd->erasesize_mask = (1 << mtd->erasesize_shift) - 1; mtd->writesize_mask = (1 << mtd->writesize_shift) - 1; - if (mtd->dev.parent) { - if (!mtd->owner && mtd->dev.parent->driver) - mtd->owner = mtd->dev.parent->driver->owner; - if (!mtd->name) - mtd->name = dev_name(mtd->dev.parent); - } else { - pr_debug("mtd device won't show a device symlink in sysfs\n"); - } - /* Some chips always power up locked. Unlock them now */ if ((mtd->flags & MTD_WRITEABLE) && (mtd->flags & MTD_POWERUP_LOCK)) { error = mtd_unlock(mtd, 0, mtd->size); @@ -554,6 +545,21 @@ static int mtd_add_device_partitions(struct mtd_info *mtd, return 0; } +/* + * Set a few defaults based on the parent devices, if not provided by the + * driver + */ +static void mtd_set_dev_defaults(struct mtd_info *mtd) +{ + if (mtd->dev.parent) { + if (!mtd->owner && mtd->dev.parent->driver) + mtd->owner = mtd->dev.parent->driver->owner; + if (!mtd->name) + mtd->name = dev_name(mtd->dev.parent); + } else { + pr_debug("mtd device won't show a device symlink in sysfs\n"); + } +} /** * mtd_device_parse_register - parse partitions and register an MTD device. @@ -592,6 +598,8 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, struct mtd_partitions parsed; int ret; + mtd_set_dev_defaults(mtd); + memset(&parsed, 0, sizeof(parsed)); ret = parse_mtd_partitions(mtd, types, &parsed, parser_data); |