@@ -28,10 +28,6 @@ struct physmap_flash_info {
struct mtd_info *cmtd;
struct map_info map[MAX_RESOURCES];
struct resource *res;
-#ifdef CONFIG_MTD_PARTITIONS
- int nr_parts;
- struct mtd_partition *parts;
-#endif
};
static int physmap_flash_remove(struct platform_device *dev)
@@ -56,18 +52,7 @@ static int physmap_flash_remove(struct platform_device *dev)
for (i = 0; i < MAX_RESOURCES; i++) {
if (info->mtd[i] != NULL) {
-#ifdef CONFIG_MTD_PARTITIONS
- if (info->nr_parts) {
- del_mtd_partitions(info->mtd[i]);
- kfree(info->parts);
- } else if (physmap_data->nr_parts) {
- del_mtd_partitions(info->mtd[i]);
- } else {
- del_mtd_device(info->mtd[i]);
- }
-#else
- del_mtd_device(info->mtd[i]);
-#endif
+ unparse_mtd(info->mtd[i]);
map_destroy(info->mtd[i]);
}
@@ -84,9 +69,6 @@ static int physmap_flash_remove(struct platform_device *dev)
}
static const char *rom_probe_types[] = { "cfi_probe", "jedec_probe", "map_rom", NULL };
-#ifdef CONFIG_MTD_PARTITIONS
-static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
-#endif
static int physmap_flash_probe(struct platform_device *dev)
{
@@ -170,23 +152,8 @@ static int physmap_flash_probe(struct platform_device *dev)
if (err)
goto err_out;
-#ifdef CONFIG_MTD_PARTITIONS
- err = parse_mtd_partitions(info->cmtd, part_probe_types, &info->parts, 0);
- if (err > 0) {
- add_mtd_partitions(info->cmtd, info->parts, err);
- return 0;
- }
-
- if (physmap_data->nr_parts) {
- printk(KERN_NOTICE "Using physmap partition information\n");
- add_mtd_partitions(info->cmtd, physmap_data->parts,
- physmap_data->nr_parts);
- return 0;
- }
-#endif
-
- add_mtd_device(info->cmtd);
- return 0;
+ return parse_mtd(info->cmtd, NULL, physmap_data->parts,
+ physmap_data->nr_parts, false);
err_out:
physmap_flash_remove(dev);
Call parse_mtd() to handle partition/device registration rather than doing it all ourself. Signed-off-by: Mike Frysinger <vapier@gentoo.org> --- v2: - call unparse_mtd() - delete local nr_parts/parts in physmap_flash_info drivers/mtd/maps/physmap.c | 39 +++------------------------------------ 1 files changed, 3 insertions(+), 36 deletions(-)