Commit a0260d21 authored by Boris BREZILLON's avatar Boris BREZILLON Committed by Brian Norris

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: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 4e3b6d17
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
struct plat_nand_data { struct plat_nand_data {
struct nand_chip chip; struct nand_chip chip;
struct mtd_info mtd;
void __iomem *io_base; void __iomem *io_base;
}; };
...@@ -31,6 +30,7 @@ static int plat_nand_probe(struct platform_device *pdev) ...@@ -31,6 +30,7 @@ static int plat_nand_probe(struct platform_device *pdev)
{ {
struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev); struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
struct plat_nand_data *data; struct plat_nand_data *data;
struct mtd_info *mtd;
struct resource *res; struct resource *res;
const char **part_types; const char **part_types;
int err = 0; int err = 0;
...@@ -58,8 +58,9 @@ static int plat_nand_probe(struct platform_device *pdev) ...@@ -58,8 +58,9 @@ static int plat_nand_probe(struct platform_device *pdev)
data->chip.priv = &data; data->chip.priv = &data;
nand_set_flash_node(&data->chip, pdev->dev.of_node); nand_set_flash_node(&data->chip, pdev->dev.of_node);
data->mtd.priv = &data->chip; mtd = nand_to_mtd(&data->chip);
data->mtd.dev.parent = &pdev->dev; mtd->priv = &data->chip;
mtd->dev.parent = &pdev->dev;
data->chip.IO_ADDR_R = data->io_base; data->chip.IO_ADDR_R = data->io_base;
data->chip.IO_ADDR_W = data->io_base; data->chip.IO_ADDR_W = data->io_base;
...@@ -87,21 +88,21 @@ static int plat_nand_probe(struct platform_device *pdev) ...@@ -87,21 +88,21 @@ static int plat_nand_probe(struct platform_device *pdev)
} }
/* Scan to find existence of the device */ /* 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; err = -ENXIO;
goto out; goto out;
} }
part_types = pdata->chip.part_probe_types; 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.partitions,
pdata->chip.nr_partitions); pdata->chip.nr_partitions);
if (!err) if (!err)
return err; return err;
nand_release(&data->mtd); nand_release(mtd);
out: out:
if (pdata->ctrl.remove) if (pdata->ctrl.remove)
pdata->ctrl.remove(pdev); pdata->ctrl.remove(pdev);
...@@ -116,7 +117,7 @@ static int plat_nand_remove(struct platform_device *pdev) ...@@ -116,7 +117,7 @@ static int plat_nand_remove(struct platform_device *pdev)
struct plat_nand_data *data = platform_get_drvdata(pdev); struct plat_nand_data *data = platform_get_drvdata(pdev);
struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev); 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) if (pdata->ctrl.remove)
pdata->ctrl.remove(pdev); pdata->ctrl.remove(pdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment