Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[pandora-kernel.git] / drivers / mtd / maps / bfin-async-flash.c
index 85dd181..d4297a9 100644 (file)
@@ -41,9 +41,7 @@ struct async_state {
        uint32_t flash_ambctl0, flash_ambctl1;
        uint32_t save_ambctl0, save_ambctl1;
        unsigned long irq_flags;
-#ifdef CONFIG_MTD_PARTITIONS
        struct mtd_partition *parts;
-#endif
 };
 
 static void switch_to_flash(struct async_state *state)
@@ -124,9 +122,7 @@ static void bfin_flash_copy_to(struct map_info *map, unsigned long to, const voi
        switch_back(state);
 }
 
-#ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
-#endif
 
 static int __devinit bfin_flash_probe(struct platform_device *pdev)
 {
@@ -169,22 +165,17 @@ static int __devinit bfin_flash_probe(struct platform_device *pdev)
                return -ENXIO;
        }
 
-#ifdef CONFIG_MTD_PARTITIONS
        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");
-               add_mtd_partitions(state->mtd, pdata->parts, ret);
+               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");
-               add_mtd_partitions(state->mtd, pdata->parts, pdata->nr_parts);
-
-       } else
-#endif
-       {
+               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");
-               add_mtd_device(state->mtd);
+               mtd_device_register(state->mtd, NULL, 0);
        }
 
        platform_set_drvdata(pdev, state);
@@ -196,10 +187,8 @@ static int __devexit bfin_flash_remove(struct platform_device *pdev)
 {
        struct async_state *state = platform_get_drvdata(pdev);
        gpio_free(state->enet_flash_pin);
-#ifdef CONFIG_MTD_PARTITIONS
-       del_mtd_partitions(state->mtd);
+       mtd_device_unregister(state->mtd);
        kfree(state->parts);
-#endif
        map_destroy(state->mtd);
        kfree(state);
        return 0;