diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-01-14 11:51:35 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-26 08:33:18 +0100 |
commit | 0c76b7e3779d1d38b8b70596b122bab076d9f26e (patch) | |
tree | 7395d66ada33e993c8eda4730b1fa8d6b9dbcf6e /drivers/mtd/partition.c | |
parent | 08f007c8977ec15663de6d6f3d403d09423a2762 (diff) | |
download | barebox-0c76b7e3779d1d38b8b70596b122bab076d9f26e.tar.gz barebox-0c76b7e3779d1d38b8b70596b122bab076d9f26e.tar.xz |
mtd: register mtd partitions as real mtd devices
So far mtd partitions were mtd devices, but these were not registered.
This patch changes this. mtd partitions are now registered like real
mtd devices. This makes them part of the device hierarchy.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mtd/partition.c')
-rw-r--r-- | drivers/mtd/partition.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mtd/partition.c b/drivers/mtd/partition.c index 3d2fac6855..351c5831b0 100644 --- a/drivers/mtd/partition.c +++ b/drivers/mtd/partition.c @@ -125,6 +125,11 @@ struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset, size_t si part->master_offset = offset; part->master = mtd; + if (!strncmp(mtd->cdev.name, name, strlen(mtd->cdev.name))) + part->cdev.partname = xstrdup(name + strlen(mtd->cdev.name) + 1); + + add_mtd_device(part, part->name, DEVICE_ID_SINGLE); + return part; } @@ -133,6 +138,9 @@ int mtd_del_partition(struct mtd_info *part) if (!part->master) return -EINVAL; + del_mtd_device(part); + + free(part->cdev.partname); free(part->name); free(part); |