mtd: bfin-async-flash.c: use mtd_device_parse_register
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Thu, 2 Jun 2011 13:59:30 +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/bfin-async-flash.c

index 67815eed2f0039b94a8e86301cf21bc4b88b9df5..6d6b2b5674ee6f4f27282e8356b301446a66c3eb 100644 (file)
@@ -41,7 +41,6 @@ struct async_state {
        uint32_t flash_ambctl0, flash_ambctl1;
        uint32_t save_ambctl0, save_ambctl1;
        unsigned long irq_flags;
-       struct mtd_partition *parts;
 };
 
 static void switch_to_flash(struct async_state *state)
@@ -165,18 +164,8 @@ static int __devinit bfin_flash_probe(struct platform_device *pdev)
                return -ENXIO;
        }
 
-       ret = parse_mtd_partitions(state->mtd, part_probe_types, &pdata->parts, 0);
-       if (ret > 0) {
-               pr_devinit(KERN_NOTICE DRIVER_NAME ": Using commandline partition definition\n");
-               mtd_device_register(state->mtd, pdata->parts, ret);
-               state->parts = pdata->parts;
-       } else if (pdata->nr_parts) {
-               pr_devinit(KERN_NOTICE DRIVER_NAME ": Using board partition definition\n");
-               mtd_device_register(state->mtd, pdata->parts, pdata->nr_parts);
-       } else {
-               pr_devinit(KERN_NOTICE DRIVER_NAME ": no partition info available, registering whole flash at once\n");
-               mtd_device_register(state->mtd, NULL, 0);
-       }
+       mtd_device_parse_register(state->mtd, part_probe_types, 0,
+                       pdata->parts, pdata->nr_parts);
 
        platform_set_drvdata(pdev, state);
 
@@ -188,7 +177,6 @@ static int __devexit bfin_flash_remove(struct platform_device *pdev)
        struct async_state *state = platform_get_drvdata(pdev);
        gpio_free(state->enet_flash_pin);
        mtd_device_unregister(state->mtd);
-       kfree(state->parts);
        map_destroy(state->mtd);
        kfree(state);
        return 0;