mtd: ixp4xx.c: use mtd_device_parse_register
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Thu, 2 Jun 2011 13:59:47 +0000 (17:59 +0400)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Sun, 11 Sep 2011 12:02:06 +0000 (15:02 +0300)
Replace custom invocations of parse_mtd_partitions and mtd_device_register
with common mtd_device_parse_register call. This would bring: standard
handling of all errors, fallback to default partitions, etc.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
drivers/mtd/maps/ixp4xx.c

index 155b219..3040901 100644 (file)
@@ -145,7 +145,6 @@ static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr)
 struct ixp4xx_flash_info {
        struct mtd_info *mtd;
        struct map_info map;
-       struct mtd_partition *partitions;
        struct resource *res;
 };
 
@@ -168,8 +167,6 @@ static int ixp4xx_flash_remove(struct platform_device *dev)
        if (info->map.virt)
                iounmap(info->map.virt);
 
-       kfree(info->partitions);
-
        if (info->res) {
                release_resource(info->res);
                kfree(info->res);
@@ -185,8 +182,6 @@ static int ixp4xx_flash_probe(struct platform_device *dev)
 {
        struct flash_platform_data *plat = dev->dev.platform_data;
        struct ixp4xx_flash_info *info;
-       const char *part_type = NULL;
-       int nr_parts = 0;
        int err = -1;
 
        if (!plat)
@@ -252,28 +247,12 @@ static int ixp4xx_flash_probe(struct platform_device *dev)
        /* Use the fast version */
        info->map.write = ixp4xx_write16;
 
-       nr_parts = parse_mtd_partitions(info->mtd, probes, &info->partitions,
-                                       dev->resource->start);
-       if (nr_parts > 0) {
-               part_type = "dynamic";
-       } else {
-               info->partitions = plat->parts;
-               nr_parts = plat->nr_parts;
-               part_type = "static";
-       }
-       if (nr_parts == 0)
-               printk(KERN_NOTICE "IXP4xx flash: no partition info "
-                       "available, registering whole flash\n");
-       else
-               printk(KERN_NOTICE "IXP4xx flash: using %s partition "
-                       "definition\n", part_type);
-
-       err = mtd_device_register(info->mtd, info->partitions, nr_parts);
-       if (err)
+       err = mtd_device_parse_register(info->mtd, probes, dev->resource->start,
+                       plat->parts, plat->nr_parts);
+       if (err) {
                printk(KERN_ERR "Could not parse partitions\n");
-
-       if (err)
                goto Error;
+       }
 
        return 0;