mtd: m25p80.c: use mtd_device_parse_register
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Thu, 2 Jun 2011 13:59:16 +0000 (17:59 +0400)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Sun, 11 Sep 2011 12:02:12 +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 <dedekind1@gmail.com>
drivers/mtd/devices/m25p80.c

index 399c2349265f1f295c482845c1e1079e78ab5035..66a3555f07d97e77d88926e6aefee2aa02da7aac 100644 (file)
@@ -88,7 +88,6 @@ struct m25p {
        struct spi_device       *spi;
        struct mutex            lock;
        struct mtd_info         mtd;
-       unsigned                partitioned:1;
        u16                     page_size;
        u16                     addr_width;
        u8                      erase_opcode;
@@ -825,8 +824,6 @@ static int __devinit m25p_probe(struct spi_device *spi)
        struct m25p                     *flash;
        struct flash_info               *info;
        unsigned                        i;
-       struct mtd_partition            *parts = NULL;
-       int                             nr_parts = 0;
        struct mtd_part_parser_data     ppdata;
 
        /* Platform data helps sort out which chip type we have, as
@@ -970,28 +967,9 @@ static int __devinit m25p_probe(struct spi_device *spi)
        /* partitions should match sector boundaries; and it may be good to
         * use readonly partitions for writeprotected sectors (BP2..BP0).
         */
-       nr_parts = parse_mtd_partitions(&flash->mtd, NULL, &parts, &ppdata);
-
-       if (nr_parts <= 0 && data && data->parts) {
-               parts = data->parts;
-               nr_parts = data->nr_parts;
-       }
-
-       if (nr_parts > 0) {
-               for (i = 0; i < nr_parts; i++) {
-                       DEBUG(MTD_DEBUG_LEVEL2, "partitions[%d] = "
-                             "{.name = %s, .offset = 0x%llx, "
-                             ".size = 0x%llx (%lldKiB) }\n",
-                             i, parts[i].name,
-                             (long long)parts[i].offset,
-                             (long long)parts[i].size,
-                             (long long)(parts[i].size >> 10));
-               }
-               flash->partitioned = 1;
-       }
-
-       return mtd_device_register(&flash->mtd, parts, nr_parts) == 1 ?
-               -ENODEV : 0;
+       return mtd_device_parse_register(&flash->mtd, NULL, &ppdata,
+                       data ? data->parts : NULL,
+                       data ? data->nr_parts : 0);
 }