Merge branch 'perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/acme...
[cascardo/linux.git] / drivers / mtd / maps / plat-ram.c
index 76a76be..9ca1ecc 100644 (file)
@@ -94,14 +94,11 @@ static int platram_remove(struct platform_device *pdev)
                return 0;
 
        if (info->mtd) {
-#ifdef CONFIG_MTD_PARTITIONS
+               mtd_device_unregister(info->mtd);
                if (info->partitions) {
-                       del_mtd_partitions(info->mtd);
                        if (info->free_partitions)
                                kfree(info->partitions);
                }
-#endif
-               del_mtd_device(info->mtd);
                map_destroy(info->mtd);
        }
 
@@ -231,7 +228,6 @@ static int platram_probe(struct platform_device *pdev)
        /* check to see if there are any available partitions, or wether
         * to add this device whole */
 
-#ifdef CONFIG_MTD_PARTITIONS
        if (!pdata->nr_partitions) {
                /* try to probe using the supplied probe type */
                if (pdata->probes) {
@@ -239,24 +235,22 @@ static int platram_probe(struct platform_device *pdev)
                                           &info->partitions, 0);
                        info->free_partitions = 1;
                        if (err > 0)
-                               err = add_mtd_partitions(info->mtd,
+                               err = mtd_device_register(info->mtd,
                                        info->partitions, err);
                }
        }
        /* use the static mapping */
        else
-               err = add_mtd_partitions(info->mtd, pdata->partitions,
-                               pdata->nr_partitions);
-#endif /* CONFIG_MTD_PARTITIONS */
-
-       if (add_mtd_device(info->mtd)) {
-               dev_err(&pdev->dev, "add_mtd_device() failed\n");
-               err = -ENOMEM;
-       }
-
+               err = mtd_device_register(info->mtd, pdata->partitions,
+                                         pdata->nr_partitions);
        if (!err)
                dev_info(&pdev->dev, "registered mtd device\n");
 
+       /* add the whole device. */
+       err = mtd_device_register(info->mtd, NULL, 0);
+       if (err)
+               dev_err(&pdev->dev, "failed to register the entire device\n");
+
        return err;
 
  exit_free: