|
@@ -842,13 +842,15 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
|
|
|
struct resource res;
|
|
|
struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl;
|
|
|
static const char *part_probe_types[]
|
|
|
- = { "cmdlinepart", "RedBoot", NULL };
|
|
|
+ = { "cmdlinepart", "RedBoot", "ofpart", NULL };
|
|
|
struct mtd_partition *parts;
|
|
|
int ret;
|
|
|
int bank;
|
|
|
struct device *dev;
|
|
|
struct device_node *node = pdev->dev.of_node;
|
|
|
+ struct mtd_part_parser_data ppdata;
|
|
|
|
|
|
+ ppdata.of_node = pdev->dev.of_node;
|
|
|
if (!fsl_lbc_ctrl_dev || !fsl_lbc_ctrl_dev->regs)
|
|
|
return -ENODEV;
|
|
|
lbc = fsl_lbc_ctrl_dev->regs;
|
|
@@ -934,16 +936,10 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
|
|
|
|
|
|
/* First look for RedBoot table or partitions on the command
|
|
|
* line, these take precedence over device tree information */
|
|
|
- ret = parse_mtd_partitions(&priv->mtd, part_probe_types, &parts, 0);
|
|
|
+ ret = parse_mtd_partitions(&priv->mtd, part_probe_types, &parts, &ppdata);
|
|
|
if (ret < 0)
|
|
|
goto err;
|
|
|
|
|
|
- if (ret == 0) {
|
|
|
- ret = of_mtd_parse_partitions(priv->dev, node, &parts);
|
|
|
- if (ret < 0)
|
|
|
- goto err;
|
|
|
- }
|
|
|
-
|
|
|
mtd_device_register(&priv->mtd, parts, ret);
|
|
|
|
|
|
printk(KERN_INFO "eLBC NAND device at 0x%llx, bank %d\n",
|