mtd: msmnand: Remove usage of deprecated APIs
1) CONFIG_MTD_PARTITIONS is now deprecated. Hence, remove usage
of this config option in nand driver.
2) Replace usage of *_mtd_partitions() APIs with mtd_device_*register()
APIs in nand driver.
Signed-off-by: Sujith Reddy Thumma <sthumma@codeaurora.org>
diff --git a/drivers/mtd/devices/msm_nand.c b/drivers/mtd/devices/msm_nand.c
index d1a1353..29b44df 100644
--- a/drivers/mtd/devices/msm_nand.c
+++ b/drivers/mtd/devices/msm_nand.c
@@ -6876,19 +6876,11 @@
{
/* struct msm_nand_chip *this = mtd->priv; */
-#ifdef CONFIG_MTD_PARTITIONS
- /* Deregister partitions */
- del_mtd_partitions(mtd);
-#endif
/* Deregister the device */
mtd_device_unregister(mtd);
}
EXPORT_SYMBOL_GPL(msm_nand_release);
-#ifdef CONFIG_MTD_PARTITIONS
-static const char *part_probes[] = { "cmdlinepart", NULL, };
-#endif
-
struct msm_nand_info {
struct mtd_info mtd;
struct mtd_partition *parts;
@@ -6935,36 +6927,26 @@
return 0;
}
-#ifdef CONFIG_MTD_PARTITIONS
-static void setup_mtd_device(struct platform_device *pdev,
+static int setup_mtd_device(struct platform_device *pdev,
struct msm_nand_info *info)
{
- int i, nr_parts;
+ int i, err;
struct flash_platform_data *pdata = pdev->dev.platform_data;
- for (i = 0; i < pdata->nr_parts; i++) {
- pdata->parts[i].offset = pdata->parts[i].offset
- * info->mtd.erasesize;
- pdata->parts[i].size = pdata->parts[i].size
- * info->mtd.erasesize;
+ if (pdata) {
+ for (i = 0; i < pdata->nr_parts; i++) {
+ pdata->parts[i].offset = pdata->parts[i].offset
+ * info->mtd.erasesize;
+ pdata->parts[i].size = pdata->parts[i].size
+ * info->mtd.erasesize;
+ }
+ err = mtd_device_register(&info->mtd, pdata->parts,
+ pdata->nr_parts);
+ } else {
+ err = mtd_device_register(&info->mtd, NULL, 0);
}
-
- nr_parts = parse_mtd_partitions(&info->mtd, part_probes, &info->parts,
- 0);
- if (nr_parts > 0)
- add_mtd_partitions(&info->mtd, info->parts, nr_parts);
- else if (nr_parts <= 0 && pdata && pdata->parts)
- add_mtd_partitions(&info->mtd, pdata->parts, pdata->nr_parts);
- else
- mtd_device_register(&info->mtd, NULL, 0);
+ return err;
}
-#else
-static void setup_mtd_device(struct platform_device *pdev,
- struct msm_nand_info *info)
-{
- mtd_device_register(&info->mtd, NULL, 0);
-}
-#endif
static int __devinit msm_nand_probe(struct platform_device *pdev)
{
@@ -7075,7 +7057,13 @@
goto out_free_dma_buffer;
}
- setup_mtd_device(pdev, info);
+ err = setup_mtd_device(pdev, info);
+ if (err < 0) {
+ pr_err("%s: setup_mtd_device failed with err=%d\n",
+ __func__, err);
+ goto out_free_dma_buffer;
+ }
+
dev_set_drvdata(&pdev->dev, info);
return 0;
@@ -7097,13 +7085,6 @@
dev_set_drvdata(&pdev->dev, NULL);
if (info) {
-#ifdef CONFIG_MTD_PARTITIONS
- if (info->parts)
- del_mtd_partitions(&info->mtd);
- else
-#endif
- mtd_device_unregister(&info->mtd);
-
msm_nand_release(&info->mtd);
dma_free_coherent(NULL, MSM_NAND_DMA_BUFFER_SIZE,
info->msm_nand.dma_buffer,