diff options
author | Boris BREZILLON <boris.brezillon@free-electrons.com> | 2015-12-10 09:00:19 +0100 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2015-12-18 19:54:41 +0100 |
commit | a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b (patch) | |
tree | 56c42daf81a14a44c3686eb0c3e2e39e7680bcb4 /drivers/mtd | |
parent | mtd: nand: pasemi: use the mtd instance embedded in struct nand_chip (diff) | |
download | linux-a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b.tar.xz 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>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/plat_nand.c | 15 |
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); |