int res;
struct mtd_partition *partitions = NULL;
int num_partitions = 0;
+ struct mtd_part_parser_data ppdata;
/* Allocate memory for the device structure (and zero it) */
host = kzalloc(sizeof(struct socrates_nand_host), GFP_KERNEL);
mtd->name = "socrates_nand";
mtd->owner = THIS_MODULE;
mtd->dev.parent = &ofdev->dev;
+ ppdata.of_node = ofdev->dev.of_node;
/*should never be accessed directly */
nand_chip->IO_ADDR_R = (void *)0xdeadbeef;
goto out;
}
- num_partitions = parse_mtd_partitions(mtd, NULL, &partitions, 0);
+ num_partitions = parse_mtd_partitions(mtd, NULL, &partitions, &ppdata);
if (num_partitions < 0) {
res = num_partitions;
goto release;
}
- if (num_partitions == 0) {
- num_partitions = of_mtd_parse_partitions(&ofdev->dev,
- ofdev->dev.of_node,
- &partitions);
- if (num_partitions < 0) {
- res = num_partitions;
- goto release;
- }
- }
-
res = mtd_device_register(mtd, partitions, num_partitions);
if (!res)
return res;