Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt...
[pandora-kernel.git] / drivers / mtd / nand / fsl_elbc_nand.c
index 537e380..33d8aad 100644 (file)
@@ -339,9 +339,9 @@ static void fsl_elbc_cmdfunc(struct mtd_info *mtd, unsigned int command,
                                    (FIR_OP_UA  << FIR_OP1_SHIFT) |
                                    (FIR_OP_RBW << FIR_OP2_SHIFT));
                out_be32(&lbc->fcr, NAND_CMD_READID << FCR_CMD0_SHIFT);
-               /* 5 bytes for manuf, device and exts */
-               out_be32(&lbc->fbcr, 5);
-               elbc_fcm_ctrl->read_bytes = 5;
+               /* nand_get_flash_type() reads 8 bytes of entire ID string */
+               out_be32(&lbc->fbcr, 8);
+               elbc_fcm_ctrl->read_bytes = 8;
                elbc_fcm_ctrl->use_mdr = 1;
                elbc_fcm_ctrl->mdr = 0;
 
@@ -841,12 +841,9 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
        struct fsl_elbc_mtd *priv;
        struct resource res;
        struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl;
-
-#ifdef CONFIG_MTD_PARTITIONS
        static const char *part_probe_types[]
                = { "cmdlinepart", "RedBoot", NULL };
        struct mtd_partition *parts;
-#endif
        int ret;
        int bank;
        struct device *dev;
@@ -935,26 +932,19 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
        if (ret)
                goto err;
 
-#ifdef CONFIG_MTD_PARTITIONS
        /* 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);
        if (ret < 0)
                goto err;
 
-#ifdef CONFIG_MTD_OF_PARTS
        if (ret == 0) {
                ret = of_mtd_parse_partitions(priv->dev, node, &parts);
                if (ret < 0)
                        goto err;
        }
-#endif
 
-       if (ret > 0)
-               add_mtd_partitions(&priv->mtd, parts, ret);
-       else
-#endif
-               add_mtd_device(&priv->mtd);
+       mtd_device_register(&priv->mtd, parts, ret);
 
        printk(KERN_INFO "eLBC NAND device at 0x%llx, bank %d\n",
               (unsigned long long)res.start, priv->bank);