summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris BREZILLON2015-12-10 09:00:19 +0100
committerBrian Norris2015-12-18 19:54:41 +0100
commita0260d21ac91c5deaeadf4d53a27b3f9f40cb77b (patch)
tree56c42daf81a14a44c3686eb0c3e2e39e7680bcb4
parentmtd: nand: pasemi: use the mtd instance embedded in struct nand_chip (diff)
downloadkernel-qcow2-linux-a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b.tar.gz
kernel-qcow2-linux-a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b.tar.xz
kernel-qcow2-linux-a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b.zip
mtd: nand: plat: use the mtd instance embedded in struct nand_chip
struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r--drivers/mtd/nand/plat_nand.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
index 06ac6c64dcd5..796eb7d54f2f 100644
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
@@ -20,7 +20,6 @@
struct plat_nand_data {
struct nand_chip chip;
- struct mtd_info mtd;
void __iomem *io_base;
};
@@ -31,6 +30,7 @@ static int plat_nand_probe(struct platform_device *pdev)
{
struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
struct plat_nand_data *data;
+ struct mtd_info *mtd;
struct resource *res;
const char **part_types;
int err = 0;
@@ -58,8 +58,9 @@ static int plat_nand_probe(struct platform_device *pdev)
data->chip.priv = &data;
nand_set_flash_node(&data->chip, pdev->dev.of_node);
- data->mtd.priv = &data->chip;
- data->mtd.dev.parent = &pdev->dev;
+ mtd = nand_to_mtd(&data->chip);
+ mtd->priv = &data->chip;
+ mtd->dev.parent = &pdev->dev;
data->chip.IO_ADDR_R = data->io_base;
data->chip.IO_ADDR_W = data->io_base;
@@ -87,21 +88,21 @@ static int plat_nand_probe(struct platform_device *pdev)
}
/* Scan to find existence of the device */
- if (nand_scan(&data->mtd, pdata->chip.nr_chips)) {
+ if (nand_scan(mtd, pdata->chip.nr_chips)) {
err = -ENXIO;
goto out;
}
part_types = pdata->chip.part_probe_types;
- err = mtd_device_parse_register(&data->mtd, part_types, NULL,
+ err = mtd_device_parse_register(mtd, part_types, NULL,
pdata->chip.partitions,
pdata->chip.nr_partitions);
if (!err)
return err;
- nand_release(&data->mtd);
+ nand_release(mtd);
out:
if (pdata->ctrl.remove)
pdata->ctrl.remove(pdev);
@@ -116,7 +117,7 @@ static int plat_nand_remove(struct platform_device *pdev)
struct plat_nand_data *data = platform_get_drvdata(pdev);
struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
- nand_release(&data->mtd);
+ nand_release(nand_to_mtd(&data->chip));
if (pdata->ctrl.remove)
pdata->ctrl.remove(pdev);