Merge branches 'einj', 'intel_idle', 'misc', 'srat' and 'turbostat-ivb' into release
[sfrench/cifs-2.6.git] / drivers / mtd / nand / omap2.c
index 0db2c0e7656ae7abbde5536ca8c842a465482696..f745f00f3167d455f3d802a0b5ea9dc82a66b617 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
 #include <linux/delay.h>
+#include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/jiffies.h>
 #include <linux/sched.h>
@@ -94,8 +95,6 @@
 #define P4e_s(a)       (TF(a & NAND_Ecc_P4e)           << 0)
 #define P4o_s(a)       (TF(a & NAND_Ecc_P4o)           << 1)
 
-static const char *part_probes[] = { "cmdlinepart", NULL };
-
 /* oob info generated runtime depending on ecc algorithm and layout selected */
 static struct nand_ecclayout omap_oobinfo;
 /* Define some generic bad / good block scan pattern which are used
@@ -114,7 +113,6 @@ struct omap_nand_info {
        struct nand_hw_control          controller;
        struct omap_nand_platform_data  *pdata;
        struct mtd_info                 mtd;
-       struct mtd_partition            *parts;
        struct nand_chip                nand;
        struct platform_device          *pdev;
 
@@ -744,12 +742,12 @@ static int omap_compare_ecc(u8 *ecc_data1,        /* read from NAND memory */
 
        case 1:
                /* Uncorrectable error */
-               DEBUG(MTD_DEBUG_LEVEL0, "ECC UNCORRECTED_ERROR 1\n");
+               pr_debug("ECC UNCORRECTED_ERROR 1\n");
                return -1;
 
        case 11:
                /* UN-Correctable error */
-               DEBUG(MTD_DEBUG_LEVEL0, "ECC UNCORRECTED_ERROR B\n");
+               pr_debug("ECC UNCORRECTED_ERROR B\n");
                return -1;
 
        case 12:
@@ -766,8 +764,8 @@ static int omap_compare_ecc(u8 *ecc_data1,  /* read from NAND memory */
 
                find_bit = (ecc_bit[5] << 2) + (ecc_bit[3] << 1) + ecc_bit[1];
 
-               DEBUG(MTD_DEBUG_LEVEL0, "Correcting single bit ECC error at "
-                               "offset: %d, bit: %d\n", find_byte, find_bit);
+               pr_debug("Correcting single bit ECC error at offset: "
+                               "%d, bit: %d\n", find_byte, find_bit);
 
                page_data[find_byte] ^= (1 << find_bit);
 
@@ -779,7 +777,7 @@ static int omap_compare_ecc(u8 *ecc_data1,  /* read from NAND memory */
                            ecc_data2[2] == 0)
                                return 0;
                }
-               DEBUG(MTD_DEBUG_LEVEL0, "UNCORRECTED_ERROR default\n");
+               pr_debug("UNCORRECTED_ERROR default\n");
                return -1;
        }
 }
@@ -1103,13 +1101,8 @@ static int __devinit omap_nand_probe(struct platform_device *pdev)
                goto out_release_mem_region;
        }
 
-       err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0);
-       if (err > 0)
-               mtd_device_register(&info->mtd, info->parts, err);
-       else if (pdata->parts)
-               mtd_device_register(&info->mtd, pdata->parts, pdata->nr_parts);
-       else
-               mtd_device_register(&info->mtd, NULL, 0);
+       mtd_device_parse_register(&info->mtd, NULL, 0,
+                       pdata->parts, pdata->nr_parts);
 
        platform_set_drvdata(pdev, &info->mtd);