]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
mtd: davinci_nand: convert to mtd_device_register()
authorJamie Iles <jamie@jamieiles.com>
Mon, 23 May 2011 09:23:18 +0000 (10:23 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 25 May 2011 01:23:20 +0000 (02:23 +0100)
Convert to mtd_device_register() and remove the check for
mtd_has_partitions() as partitioning is always available.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/davinci_nand.c

index aff3468867ac056cb81054fa4c17bfdb50022803..1f34951ae1a7426f0344a7327c56a5b1105c7bc8 100644 (file)
@@ -530,6 +530,8 @@ static int __init nand_davinci_probe(struct platform_device *pdev)
        int                             ret;
        uint32_t                        val;
        nand_ecc_modes_t                ecc_mode;
+       struct mtd_partition            *mtd_parts = NULL;
+       int                             mtd_parts_nb = 0;
 
        /* insist on board-specific configuration */
        if (!pdata)
@@ -749,41 +751,33 @@ syndrome_done:
        if (ret < 0)
                goto err_scan;
 
-       if (mtd_has_partitions()) {
-               struct mtd_partition    *mtd_parts = NULL;
-               int                     mtd_parts_nb = 0;
+       if (mtd_has_cmdlinepart()) {
+               static const char *probes[] __initconst = {
+                       "cmdlinepart", NULL
+               };
 
-               if (mtd_has_cmdlinepart()) {
-                       static const char *probes[] __initconst =
-                               { "cmdlinepart", NULL };
-
-                       mtd_parts_nb = parse_mtd_partitions(&info->mtd, probes,
-                                                           &mtd_parts, 0);
-               }
-
-               if (mtd_parts_nb <= 0) {
-                       mtd_parts = pdata->parts;
-                       mtd_parts_nb = pdata->nr_parts;
-               }
+               mtd_parts_nb = parse_mtd_partitions(&info->mtd, probes,
+                                                   &mtd_parts, 0);
+       }
 
-               /* Register any partitions */
-               if (mtd_parts_nb > 0) {
-                       ret = add_mtd_partitions(&info->mtd,
-                                       mtd_parts, mtd_parts_nb);
-                       if (ret == 0)
-                               info->partitioned = true;
-               }
+       if (mtd_parts_nb <= 0) {
+               mtd_parts = pdata->parts;
+               mtd_parts_nb = pdata->nr_parts;
+       }
 
-       } else if (pdata->nr_parts) {
-               dev_warn(&pdev->dev, "ignoring %d default partitions on %s\n",
-                               pdata->nr_parts, info->mtd.name);
+       /* Register any partitions */
+       if (mtd_parts_nb > 0) {
+               ret = mtd_device_register(&info->mtd, mtd_parts,
+                                         mtd_parts_nb);
+               if (ret == 0)
+                       info->partitioned = true;
        }
 
        /* If there's no partition info, just package the whole chip
         * as a single MTD device.
         */
        if (!info->partitioned)
-               ret = add_mtd_device(&info->mtd) ? -ENODEV : 0;
+               ret = mtd_device_register(&info->mtd, NULL, 0) ? -ENODEV : 0;
 
        if (ret < 0)
                goto err_scan;
@@ -824,10 +818,7 @@ static int __exit nand_davinci_remove(struct platform_device *pdev)
        struct davinci_nand_info *info = platform_get_drvdata(pdev);
        int status;
 
-       if (mtd_has_partitions() && info->partitioned)
-               status = del_mtd_partitions(&info->mtd);
-       else
-               status = del_mtd_device(&info->mtd);
+       status = mtd_device_unregister(&info->mtd);
 
        spin_lock_irq(&davinci_nand_lock);
        if (info->chip.ecc.mode == NAND_ECC_HW_SYNDROME)