Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / drivers / mtd / onenand / generic.c
index ac08750..2d70d35 100644 (file)
@@ -30,9 +30,7 @@
  */
 #define DRIVER_NAME    "onenand-flash"
 
-#ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probes[] = { "cmdlinepart", NULL,  };
-#endif
 
 struct onenand_info {
        struct mtd_info         mtd;
@@ -75,15 +73,13 @@ static int __devinit generic_onenand_probe(struct platform_device *pdev)
                goto out_iounmap;
        }
 
-#ifdef CONFIG_MTD_PARTITIONS
        err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0);
        if (err > 0)
-               add_mtd_partitions(&info->mtd, info->parts, err);
+               mtd_device_register(&info->mtd, info->parts, err);
        else if (err <= 0 && pdata && pdata->parts)
-               add_mtd_partitions(&info->mtd, pdata->parts, pdata->nr_parts);
+               mtd_device_register(&info->mtd, pdata->parts, pdata->nr_parts);
        else
-#endif
-               err = add_mtd_device(&info->mtd);
+               err = mtd_device_register(&info->mtd, NULL, 0);
 
        platform_set_drvdata(pdev, info);
 
@@ -108,11 +104,7 @@ static int __devexit generic_onenand_remove(struct platform_device *pdev)
        platform_set_drvdata(pdev, NULL);
 
        if (info) {
-               if (info->parts)
-                       del_mtd_partitions(&info->mtd);
-               else
-                       del_mtd_device(&info->mtd);
-
+               mtd_device_unregister(&info->mtd);
                onenand_release(&info->mtd);
                release_mem_region(res->start, size);
                iounmap(info->onenand.base);