/* cache; could be found out of res */
        unsigned long           win_mask;
 
-       int                     nr_parts;
-       struct mtd_partition    *parts;
-
        spinlock_t              lock;
 };
 
        latch_addr_data = dev->dev.platform_data;
 
        if (info->mtd != NULL) {
-               if (info->nr_parts)
-                       kfree(info->parts);
                mtd_device_unregister(info->mtd);
                map_destroy(info->mtd);
        }
        }
        info->mtd->owner = THIS_MODULE;
 
-       err = parse_mtd_partitions(info->mtd, NULL, &info->parts, 0);
-       if (err > 0) {
-               mtd_device_register(info->mtd, info->parts, err);
-               return 0;
-       }
-       if (latch_addr_data->nr_parts) {
-               pr_notice("Using latch-addr-flash partition information\n");
-               mtd_device_register(info->mtd,
-                                   latch_addr_data->parts,
-                                   latch_addr_data->nr_parts);
-               return 0;
-       }
-
-       mtd_device_register(info->mtd, NULL, 0);
+       mtd_device_parse_register(info->mtd, NULL, 0,
+                       latch_addr_data->parts, latch_addr_data->nr_parts);
        return 0;
 
 iounmap: