aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch')
-rw-r--r--target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch725
1 files changed, 0 insertions, 725 deletions
diff --git a/target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch b/target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch
deleted file mode 100644
index 3dc68f01df..0000000000
--- a/target/linux/brcm63xx/patches-4.4/000-4.5-06-mtd-nand-drop-unnecessary-partition-parser-data.patch
+++ /dev/null
@@ -1,725 +0,0 @@
-From a61ae81a1907af1987ad4c77300508327bc48b23 Mon Sep 17 00:00:00 2001
-From: Brian Norris <computersforpeace@gmail.com>
-Date: Fri, 30 Oct 2015 20:33:25 -0700
-Subject: [PATCH 06/11] mtd: nand: drop unnecessary partition parser data
-
-All of these drivers set up a parser data struct just to communicate DT
-partition data. This field has been deprecated and is instead supported
-by telling nand_scan_ident() about the 'flash_node'.
-
-This patch:
- * sets chip->flash_node for those drivers that didn't already (but used
- OF partitioning)
- * drops the parser data
- * switches to the simpler mtd_device_register() where possible, now
- that we've eliminated one of the auxiliary parameters
-
-Now that we've assigned chip->flash_node for these drivers, we can
-probably rely on nand_dt_init() to do more of the DT parsing for us, but
-for now, I don't want to fiddle with each of these drivers. The parsing
-is done in duplicate for now on some drivers. I don't think this should
-break things. (Famous last words.)
-
-(Rolled in some changes by Boris Brezillon)
-
-Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
----
- drivers/mtd/nand/atmel_nand.c | 7 +++----
- drivers/mtd/nand/brcmnand/brcmnand.c | 3 +--
- drivers/mtd/nand/davinci_nand.c | 10 +++-------
- drivers/mtd/nand/fsl_elbc_nand.c | 5 ++---
- drivers/mtd/nand/fsl_ifc_nand.c | 5 ++---
- drivers/mtd/nand/fsl_upm.c | 5 ++---
- drivers/mtd/nand/fsmc_nand.c | 7 +++----
- drivers/mtd/nand/gpio.c | 8 +++-----
- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 5 ++---
- drivers/mtd/nand/hisi504_nand.c | 5 ++---
- drivers/mtd/nand/lpc32xx_mlc.c | 7 +++----
- drivers/mtd/nand/lpc32xx_slc.c | 7 +++----
- drivers/mtd/nand/mpc5121_nfc.c | 5 ++---
- drivers/mtd/nand/mxc_nand.c | 5 ++---
- drivers/mtd/nand/ndfc.c | 5 ++---
- drivers/mtd/nand/omap2.c | 6 ++----
- drivers/mtd/nand/orion_nand.c | 6 ++----
- drivers/mtd/nand/plat_nand.c | 5 ++---
- drivers/mtd/nand/pxa3xx_nand.c | 10 +++++-----
- drivers/mtd/nand/sh_flctl.c | 6 ++----
- drivers/mtd/nand/socrates_nand.c | 5 ++---
- drivers/mtd/nand/sunxi_nand.c | 4 +---
- drivers/mtd/nand/vf610_nfc.c | 6 +-----
- drivers/staging/mt29f_spinand/mt29f_spinand.c | 5 ++---
- 24 files changed, 54 insertions(+), 88 deletions(-)
-
---- a/drivers/mtd/nand/atmel_nand.c
-+++ b/drivers/mtd/nand/atmel_nand.c
-@@ -2093,7 +2093,6 @@ static int atmel_nand_probe(struct platf
- struct mtd_info *mtd;
- struct nand_chip *nand_chip;
- struct resource *mem;
-- struct mtd_part_parser_data ppdata = {};
- int res, irq;
-
- /* Allocate memory for the device structure (and zero it) */
-@@ -2117,6 +2116,7 @@ static int atmel_nand_probe(struct platf
- nand_chip = &host->nand_chip;
- host->dev = &pdev->dev;
- if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) {
-+ nand_set_flash_node(nand_chip, pdev->dev.of_node);
- /* Only when CONFIG_OF is enabled of_node can be parsed */
- res = atmel_of_init_port(host, pdev->dev.of_node);
- if (res)
-@@ -2259,9 +2259,8 @@ static int atmel_nand_probe(struct platf
- }
-
- mtd->name = "atmel_nand";
-- ppdata.of_node = pdev->dev.of_node;
-- res = mtd_device_parse_register(mtd, NULL, &ppdata,
-- host->board.parts, host->board.num_parts);
-+ res = mtd_device_register(mtd, host->board.parts,
-+ host->board.num_parts);
- if (!res)
- return res;
-
---- a/drivers/mtd/nand/brcmnand/brcmnand.c
-+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
-@@ -1939,7 +1939,6 @@ static int brcmnand_init_cs(struct brcmn
- struct nand_chip *chip;
- int ret;
- u16 cfg_offs;
-- struct mtd_part_parser_data ppdata = { .of_node = dn };
-
- ret = of_property_read_u32(dn, "reg", &host->cs);
- if (ret) {
-@@ -2018,7 +2017,7 @@ static int brcmnand_init_cs(struct brcmn
- if (nand_scan_tail(mtd))
- return -ENXIO;
-
-- return mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ return mtd_device_register(mtd, NULL, 0);
- }
-
- static void brcmnand_save_restore_cs_config(struct brcmnand_host *host,
---- a/drivers/mtd/nand/davinci_nand.c
-+++ b/drivers/mtd/nand/davinci_nand.c
-@@ -687,6 +687,7 @@ static int nand_davinci_probe(struct pla
-
- info->mtd.priv = &info->chip;
- info->mtd.dev.parent = &pdev->dev;
-+ nand_set_flash_node(&info->chip, pdev->dev.of_node);
-
- info->chip.IO_ADDR_R = vaddr;
- info->chip.IO_ADDR_W = vaddr;
-@@ -842,13 +843,8 @@ syndrome_done:
- if (pdata->parts)
- ret = mtd_device_parse_register(&info->mtd, NULL, NULL,
- pdata->parts, pdata->nr_parts);
-- else {
-- struct mtd_part_parser_data ppdata;
--
-- ppdata.of_node = pdev->dev.of_node;
-- ret = mtd_device_parse_register(&info->mtd, NULL, &ppdata,
-- NULL, 0);
-- }
-+ else
-+ ret = mtd_device_register(&info->mtd, NULL, 0);
- if (ret < 0)
- goto err;
-
---- a/drivers/mtd/nand/fsl_elbc_nand.c
-+++ b/drivers/mtd/nand/fsl_elbc_nand.c
-@@ -748,6 +748,7 @@ static int fsl_elbc_chip_init(struct fsl
- /* Fill in fsl_elbc_mtd structure */
- priv->mtd.priv = chip;
- priv->mtd.dev.parent = priv->dev;
-+ nand_set_flash_node(chip, priv->dev->of_node);
-
- /* set timeout to maximum */
- priv->fmr = 15 << FMR_CWTO_SHIFT;
-@@ -823,9 +824,7 @@ static int fsl_elbc_nand_probe(struct pl
- int bank;
- struct device *dev;
- struct device_node *node = pdev->dev.of_node;
-- struct mtd_part_parser_data ppdata;
-
-- ppdata.of_node = pdev->dev.of_node;
- if (!fsl_lbc_ctrl_dev || !fsl_lbc_ctrl_dev->regs)
- return -ENODEV;
- lbc = fsl_lbc_ctrl_dev->regs;
-@@ -911,7 +910,7 @@ static int fsl_elbc_nand_probe(struct pl
-
- /* First look for RedBoot table or partitions on the command
- * line, these take precedence over device tree information */
-- mtd_device_parse_register(&priv->mtd, part_probe_types, &ppdata,
-+ mtd_device_parse_register(&priv->mtd, part_probe_types, NULL,
- NULL, 0);
-
- printk(KERN_INFO "eLBC NAND device at 0x%llx, bank %d\n",
---- a/drivers/mtd/nand/fsl_ifc_nand.c
-+++ b/drivers/mtd/nand/fsl_ifc_nand.c
-@@ -883,6 +883,7 @@ static int fsl_ifc_chip_init(struct fsl_
- /* Fill in fsl_ifc_mtd structure */
- priv->mtd.priv = chip;
- priv->mtd.dev.parent = priv->dev;
-+ nand_set_flash_node(chip, priv->dev->of_node);
-
- /* fill in nand_chip structure */
- /* set up function call table */
-@@ -1030,9 +1031,7 @@ static int fsl_ifc_nand_probe(struct pla
- int ret;
- int bank;
- struct device_node *node = dev->dev.of_node;
-- struct mtd_part_parser_data ppdata;
-
-- ppdata.of_node = dev->dev.of_node;
- if (!fsl_ifc_ctrl_dev || !fsl_ifc_ctrl_dev->regs)
- return -ENODEV;
- ifc = fsl_ifc_ctrl_dev->regs;
-@@ -1128,7 +1127,7 @@ static int fsl_ifc_nand_probe(struct pla
-
- /* First look for RedBoot table or partitions on the command
- * line, these take precedence over device tree information */
-- mtd_device_parse_register(&priv->mtd, part_probe_types, &ppdata,
-+ mtd_device_parse_register(&priv->mtd, part_probe_types, NULL,
- NULL, 0);
-
- dev_info(priv->dev, "IFC NAND device at 0x%llx, bank %d\n",
---- a/drivers/mtd/nand/fsl_upm.c
-+++ b/drivers/mtd/nand/fsl_upm.c
-@@ -159,7 +159,6 @@ static int fun_chip_init(struct fsl_upm_
- {
- int ret;
- struct device_node *flash_np;
-- struct mtd_part_parser_data ppdata;
-
- fun->chip.IO_ADDR_R = fun->io_base;
- fun->chip.IO_ADDR_W = fun->io_base;
-@@ -182,6 +181,7 @@ static int fun_chip_init(struct fsl_upm_
- if (!flash_np)
- return -ENODEV;
-
-+ nand_set_flash_node(&fun->chip, flash_np);
- fun->mtd.name = kasprintf(GFP_KERNEL, "0x%llx.%s", (u64)io_res->start,
- flash_np->name);
- if (!fun->mtd.name) {
-@@ -193,8 +193,7 @@ static int fun_chip_init(struct fsl_upm_
- if (ret)
- goto err;
-
-- ppdata.of_node = flash_np;
-- ret = mtd_device_parse_register(&fun->mtd, NULL, &ppdata, NULL, 0);
-+ ret = mtd_device_register(&fun->mtd, NULL, 0);
- err:
- of_node_put(flash_np);
- if (ret)
---- a/drivers/mtd/nand/fsmc_nand.c
-+++ b/drivers/mtd/nand/fsmc_nand.c
-@@ -926,7 +926,6 @@ static int __init fsmc_nand_probe(struct
- {
- struct fsmc_nand_platform_data *pdata = dev_get_platdata(&pdev->dev);
- struct device_node __maybe_unused *np = pdev->dev.of_node;
-- struct mtd_part_parser_data ppdata = {};
- struct fsmc_nand_data *host;
- struct mtd_info *mtd;
- struct nand_chip *nand;
-@@ -1016,6 +1015,7 @@ static int __init fsmc_nand_probe(struct
- nand = &host->nand;
- mtd->priv = nand;
- nand->priv = host;
-+ nand_set_flash_node(nand, np);
-
- host->mtd.dev.parent = &pdev->dev;
- nand->IO_ADDR_R = host->data_va;
-@@ -1175,9 +1175,8 @@ static int __init fsmc_nand_probe(struct
- * Check for partition info passed
- */
- host->mtd.name = "nand";
-- ppdata.of_node = np;
-- ret = mtd_device_parse_register(&host->mtd, NULL, &ppdata,
-- host->partitions, host->nr_partitions);
-+ ret = mtd_device_register(&host->mtd, host->partitions,
-+ host->nr_partitions);
- if (ret)
- goto err_probe;
-
---- a/drivers/mtd/nand/gpio.c
-+++ b/drivers/mtd/nand/gpio.c
-@@ -209,7 +209,6 @@ static int gpio_nand_probe(struct platfo
- struct gpiomtd *gpiomtd;
- struct nand_chip *chip;
- struct resource *res;
-- struct mtd_part_parser_data ppdata = {};
- int ret = 0;
-
- if (!pdev->dev.of_node && !dev_get_platdata(&pdev->dev))
-@@ -268,6 +267,7 @@ static int gpio_nand_probe(struct platfo
- chip->dev_ready = gpio_nand_devready;
- }
-
-+ nand_set_flash_node(chip, pdev->dev.of_node);
- chip->IO_ADDR_W = chip->IO_ADDR_R;
- chip->ecc.mode = NAND_ECC_SOFT;
- chip->options = gpiomtd->plat.options;
-@@ -291,10 +291,8 @@ static int gpio_nand_probe(struct platfo
- gpiomtd->plat.adjust_parts(&gpiomtd->plat,
- gpiomtd->mtd_info.size);
-
-- ppdata.of_node = pdev->dev.of_node;
-- ret = mtd_device_parse_register(&gpiomtd->mtd_info, NULL, &ppdata,
-- gpiomtd->plat.parts,
-- gpiomtd->plat.num_parts);
-+ ret = mtd_device_register(&gpiomtd->mtd_info, gpiomtd->plat.parts,
-+ gpiomtd->plat.num_parts);
- if (!ret)
- return 0;
-
---- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-@@ -1888,7 +1888,6 @@ static int gpmi_nand_init(struct gpmi_na
- {
- struct mtd_info *mtd = &this->mtd;
- struct nand_chip *chip = &this->nand;
-- struct mtd_part_parser_data ppdata = {};
- int ret;
-
- /* init current chip */
-@@ -1901,6 +1900,7 @@ static int gpmi_nand_init(struct gpmi_na
-
- /* init the nand_chip{}, we don't support a 16-bit NAND Flash bus. */
- chip->priv = this;
-+ nand_set_flash_node(chip, this->pdev->dev.of_node);
- chip->select_chip = gpmi_select_chip;
- chip->cmd_ctrl = gpmi_cmd_ctrl;
- chip->dev_ready = gpmi_dev_ready;
-@@ -1954,8 +1954,7 @@ static int gpmi_nand_init(struct gpmi_na
- if (ret)
- goto err_out;
-
-- ppdata.of_node = this->pdev->dev.of_node;
-- ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ ret = mtd_device_register(mtd, NULL, 0);
- if (ret)
- goto err_out;
- return 0;
---- a/drivers/mtd/nand/hisi504_nand.c
-+++ b/drivers/mtd/nand/hisi504_nand.c
-@@ -704,7 +704,6 @@ static int hisi_nfc_probe(struct platfor
- struct mtd_info *mtd;
- struct resource *res;
- struct device_node *np = dev->of_node;
-- struct mtd_part_parser_data ppdata;
-
- host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL);
- if (!host)
-@@ -742,6 +741,7 @@ static int hisi_nfc_probe(struct platfor
- mtd->dev.parent = &pdev->dev;
-
- chip->priv = host;
-+ nand_set_flash_node(chip, np);
- chip->cmdfunc = hisi_nfc_cmdfunc;
- chip->select_chip = hisi_nfc_select_chip;
- chip->read_byte = hisi_nfc_read_byte;
-@@ -805,8 +805,7 @@ static int hisi_nfc_probe(struct platfor
- goto err_res;
- }
-
-- ppdata.of_node = np;
-- ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ ret = mtd_device_register(mtd, NULL, 0);
- if (ret) {
- dev_err(dev, "Err MTD partition=%d\n", ret);
- goto err_mtd;
---- a/drivers/mtd/nand/lpc32xx_mlc.c
-+++ b/drivers/mtd/nand/lpc32xx_mlc.c
-@@ -647,7 +647,6 @@ static int lpc32xx_nand_probe(struct pla
- struct nand_chip *nand_chip;
- struct resource *rc;
- int res;
-- struct mtd_part_parser_data ppdata = {};
-
- /* Allocate memory for the device structure (and zero it) */
- host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL);
-@@ -682,6 +681,7 @@ static int lpc32xx_nand_probe(struct pla
- host->pdata = dev_get_platdata(&pdev->dev);
-
- nand_chip->priv = host; /* link the private data structures */
-+ nand_set_flash_node(nand_chip, pdev->dev.of_node);
- mtd->priv = nand_chip;
- mtd->dev.parent = &pdev->dev;
-
-@@ -786,9 +786,8 @@ static int lpc32xx_nand_probe(struct pla
-
- mtd->name = DRV_NAME;
-
-- ppdata.of_node = pdev->dev.of_node;
-- res = mtd_device_parse_register(mtd, NULL, &ppdata, host->ncfg->parts,
-- host->ncfg->num_parts);
-+ res = mtd_device_register(mtd, host->ncfg->parts,
-+ host->ncfg->num_parts);
- if (!res)
- return res;
-
---- a/drivers/mtd/nand/lpc32xx_slc.c
-+++ b/drivers/mtd/nand/lpc32xx_slc.c
-@@ -763,7 +763,6 @@ static int lpc32xx_nand_probe(struct pla
- struct mtd_info *mtd;
- struct nand_chip *chip;
- struct resource *rc;
-- struct mtd_part_parser_data ppdata = {};
- int res;
-
- rc = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-@@ -803,6 +802,7 @@ static int lpc32xx_nand_probe(struct pla
- mtd = &host->mtd;
- chip = &host->nand_chip;
- chip->priv = host;
-+ nand_set_flash_node(chip, pdev->dev.of_node);
- mtd->priv = chip;
- mtd->owner = THIS_MODULE;
- mtd->dev.parent = &pdev->dev;
-@@ -908,9 +908,8 @@ static int lpc32xx_nand_probe(struct pla
- }
-
- mtd->name = "nxp_lpc3220_slc";
-- ppdata.of_node = pdev->dev.of_node;
-- res = mtd_device_parse_register(mtd, NULL, &ppdata, host->ncfg->parts,
-- host->ncfg->num_parts);
-+ res = mtd_device_register(mtd, host->ncfg->parts,
-+ host->ncfg->num_parts);
- if (!res)
- return res;
-
---- a/drivers/mtd/nand/mpc5121_nfc.c
-+++ b/drivers/mtd/nand/mpc5121_nfc.c
-@@ -639,7 +639,6 @@ static int mpc5121_nfc_probe(struct plat
- int resettime = 0;
- int retval = 0;
- int rev, len;
-- struct mtd_part_parser_data ppdata;
-
- /*
- * Check SoC revision. This driver supports only NFC
-@@ -661,6 +660,7 @@ static int mpc5121_nfc_probe(struct plat
- mtd->priv = chip;
- mtd->dev.parent = dev;
- chip->priv = prv;
-+ nand_set_flash_node(chip, dn);
- prv->dev = dev;
-
- /* Read NFC configuration from Reset Config Word */
-@@ -703,7 +703,6 @@ static int mpc5121_nfc_probe(struct plat
- }
-
- mtd->name = "MPC5121 NAND";
-- ppdata.of_node = dn;
- chip->dev_ready = mpc5121_nfc_dev_ready;
- chip->cmdfunc = mpc5121_nfc_command;
- chip->read_byte = mpc5121_nfc_read_byte;
-@@ -815,7 +814,7 @@ static int mpc5121_nfc_probe(struct plat
- dev_set_drvdata(dev, mtd);
-
- /* Register device in MTD */
-- retval = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ retval = mtd_device_register(mtd, NULL, 0);
- if (retval) {
- dev_err(dev, "Error adding MTD device!\n");
- goto error;
---- a/drivers/mtd/nand/mxc_nand.c
-+++ b/drivers/mtd/nand/mxc_nand.c
-@@ -1524,6 +1524,7 @@ static int mxcnd_probe(struct platform_d
- this->chip_delay = 5;
-
- this->priv = host;
-+ nand_set_flash_node(this, pdev->dev.of_node),
- this->dev_ready = mxc_nand_dev_ready;
- this->cmdfunc = mxc_nand_command;
- this->read_byte = mxc_nand_read_byte;
-@@ -1683,9 +1684,7 @@ static int mxcnd_probe(struct platform_d
-
- /* Register the partitions */
- mtd_device_parse_register(mtd, part_probes,
-- &(struct mtd_part_parser_data){
-- .of_node = pdev->dev.of_node,
-- },
-+ NULL,
- host->pdata.parts,
- host->pdata.nr_parts);
-
---- a/drivers/mtd/nand/ndfc.c
-+++ b/drivers/mtd/nand/ndfc.c
-@@ -147,7 +147,6 @@ static int ndfc_chip_init(struct ndfc_co
- {
- struct device_node *flash_np;
- struct nand_chip *chip = &ndfc->chip;
-- struct mtd_part_parser_data ppdata;
- int ret;
-
- chip->IO_ADDR_R = ndfc->ndfcbase + NDFC_DATA;
-@@ -174,8 +173,8 @@ static int ndfc_chip_init(struct ndfc_co
- flash_np = of_get_next_child(node, NULL);
- if (!flash_np)
- return -ENODEV;
-+ nand_set_flash_node(chip, flash_np);
-
-- ppdata.of_node = flash_np;
- ndfc->mtd.name = kasprintf(GFP_KERNEL, "%s.%s",
- dev_name(&ndfc->ofdev->dev), flash_np->name);
- if (!ndfc->mtd.name) {
-@@ -187,7 +186,7 @@ static int ndfc_chip_init(struct ndfc_co
- if (ret)
- goto err;
-
-- ret = mtd_device_parse_register(&ndfc->mtd, NULL, &ppdata, NULL, 0);
-+ ret = mtd_device_register(&ndfc->mtd, NULL, 0);
-
- err:
- of_node_put(flash_np);
---- a/drivers/mtd/nand/omap2.c
-+++ b/drivers/mtd/nand/omap2.c
-@@ -1663,7 +1663,6 @@ static int omap_nand_probe(struct platfo
- unsigned sig;
- unsigned oob_index;
- struct resource *res;
-- struct mtd_part_parser_data ppdata = {};
-
- pdata = dev_get_platdata(&pdev->dev);
- if (pdata == NULL) {
-@@ -1688,6 +1687,7 @@ static int omap_nand_probe(struct platfo
- mtd->dev.parent = &pdev->dev;
- nand_chip = &info->nand;
- nand_chip->ecc.priv = NULL;
-+ nand_set_flash_node(nand_chip, pdata->of_node);
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- nand_chip->IO_ADDR_R = devm_ioremap_resource(&pdev->dev, res);
-@@ -2037,9 +2037,7 @@ scan_tail:
- goto return_error;
- }
-
-- ppdata.of_node = pdata->of_node;
-- mtd_device_parse_register(mtd, NULL, &ppdata, pdata->parts,
-- pdata->nr_parts);
-+ mtd_device_register(mtd, pdata->parts, pdata->nr_parts);
-
- platform_set_drvdata(pdev, mtd);
-
---- a/drivers/mtd/nand/orion_nand.c
-+++ b/drivers/mtd/nand/orion_nand.c
-@@ -76,7 +76,6 @@ static void orion_nand_read_buf(struct m
- static int __init orion_nand_probe(struct platform_device *pdev)
- {
- struct mtd_info *mtd;
-- struct mtd_part_parser_data ppdata = {};
- struct nand_chip *nc;
- struct orion_nand_data *board;
- struct resource *res;
-@@ -127,6 +126,7 @@ static int __init orion_nand_probe(struc
- mtd->dev.parent = &pdev->dev;
-
- nc->priv = board;
-+ nand_set_flash_node(nc, pdev->dev.of_node);
- nc->IO_ADDR_R = nc->IO_ADDR_W = io_base;
- nc->cmd_ctrl = orion_nand_cmd_ctrl;
- nc->read_buf = orion_nand_read_buf;
-@@ -161,9 +161,7 @@ static int __init orion_nand_probe(struc
- }
-
- mtd->name = "orion_nand";
-- ppdata.of_node = pdev->dev.of_node;
-- ret = mtd_device_parse_register(mtd, NULL, &ppdata,
-- board->parts, board->nr_parts);
-+ ret = mtd_device_register(mtd, board->parts, board->nr_parts);
- if (ret) {
- nand_release(mtd);
- goto no_dev;
---- a/drivers/mtd/nand/plat_nand.c
-+++ b/drivers/mtd/nand/plat_nand.c
-@@ -30,7 +30,6 @@ struct plat_nand_data {
- static int plat_nand_probe(struct platform_device *pdev)
- {
- struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
-- struct mtd_part_parser_data ppdata;
- struct plat_nand_data *data;
- struct resource *res;
- const char **part_types;
-@@ -58,6 +57,7 @@ static int plat_nand_probe(struct platfo
- return PTR_ERR(data->io_base);
-
- 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;
-
-@@ -105,8 +105,7 @@ static int plat_nand_probe(struct platfo
-
- part_types = pdata->chip.part_probe_types;
-
-- ppdata.of_node = pdev->dev.of_node;
-- err = mtd_device_parse_register(&data->mtd, part_types, &ppdata,
-+ err = mtd_device_parse_register(&data->mtd, part_types, NULL,
- pdata->chip.partitions,
- pdata->chip.nr_partitions);
-
---- a/drivers/mtd/nand/pxa3xx_nand.c
-+++ b/drivers/mtd/nand/pxa3xx_nand.c
-@@ -1697,6 +1697,7 @@ KEEP_CONFIG:
-
- static int alloc_nand_resource(struct platform_device *pdev)
- {
-+ struct device_node *np = pdev->dev.of_node;
- struct pxa3xx_nand_platform_data *pdata;
- struct pxa3xx_nand_info *info;
- struct pxa3xx_nand_host *host;
-@@ -1725,6 +1726,8 @@ static int alloc_nand_resource(struct pl
- host->info_data = info;
- mtd->priv = host;
- mtd->dev.parent = &pdev->dev;
-+ /* FIXME: all chips use the same device tree partitions */
-+ nand_set_flash_node(chip, np);
-
- chip->ecc.read_page = pxa3xx_nand_read_page_hwecc;
- chip->ecc.write_page = pxa3xx_nand_write_page_hwecc;
-@@ -1886,7 +1889,6 @@ static int pxa3xx_nand_probe_dt(struct p
- static int pxa3xx_nand_probe(struct platform_device *pdev)
- {
- struct pxa3xx_nand_platform_data *pdata;
-- struct mtd_part_parser_data ppdata = {};
- struct pxa3xx_nand_info *info;
- int ret, cs, probe_success, dma_available;
-
-@@ -1933,10 +1935,8 @@ static int pxa3xx_nand_probe(struct plat
- continue;
- }
-
-- ppdata.of_node = pdev->dev.of_node;
-- ret = mtd_device_parse_register(mtd, NULL,
-- &ppdata, pdata->parts[cs],
-- pdata->nr_parts[cs]);
-+ ret = mtd_device_register(mtd, pdata->parts[cs],
-+ pdata->nr_parts[cs]);
- if (!ret)
- probe_success = 1;
- }
---- a/drivers/mtd/nand/sh_flctl.c
-+++ b/drivers/mtd/nand/sh_flctl.c
-@@ -1086,7 +1086,6 @@ static int flctl_probe(struct platform_d
- struct sh_flctl_platform_data *pdata;
- int ret;
- int irq;
-- struct mtd_part_parser_data ppdata = {};
-
- flctl = devm_kzalloc(&pdev->dev, sizeof(struct sh_flctl), GFP_KERNEL);
- if (!flctl)
-@@ -1124,6 +1123,7 @@ static int flctl_probe(struct platform_d
- platform_set_drvdata(pdev, flctl);
- flctl_mtd = &flctl->mtd;
- nand = &flctl->chip;
-+ nand_set_flash_node(nand, pdev->dev.of_node);
- flctl_mtd->priv = nand;
- flctl_mtd->dev.parent = &pdev->dev;
- flctl->pdev = pdev;
-@@ -1164,9 +1164,7 @@ static int flctl_probe(struct platform_d
- if (ret)
- goto err_chip;
-
-- ppdata.of_node = pdev->dev.of_node;
-- ret = mtd_device_parse_register(flctl_mtd, NULL, &ppdata, pdata->parts,
-- pdata->nr_parts);
-+ ret = mtd_device_register(flctl_mtd, pdata->parts, pdata->nr_parts);
-
- return 0;
-
---- a/drivers/mtd/nand/socrates_nand.c
-+++ b/drivers/mtd/nand/socrates_nand.c
-@@ -147,7 +147,6 @@ static int socrates_nand_probe(struct pl
- struct mtd_info *mtd;
- struct nand_chip *nand_chip;
- int res;
-- struct mtd_part_parser_data ppdata;
-
- /* Allocate memory for the device structure (and zero it) */
- host = devm_kzalloc(&ofdev->dev, sizeof(*host), GFP_KERNEL);
-@@ -165,10 +164,10 @@ static int socrates_nand_probe(struct pl
- host->dev = &ofdev->dev;
-
- nand_chip->priv = host; /* link the private data structures */
-+ nand_set_flash_node(nand_chip, ofdev->dev.of_node);
- mtd->priv = nand_chip;
- mtd->name = "socrates_nand";
- mtd->dev.parent = &ofdev->dev;
-- ppdata.of_node = ofdev->dev.of_node;
-
- /*should never be accessed directly */
- nand_chip->IO_ADDR_R = (void *)0xdeadbeef;
-@@ -200,7 +199,7 @@ static int socrates_nand_probe(struct pl
- goto out;
- }
-
-- res = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ res = mtd_device_register(mtd, NULL, 0);
- if (!res)
- return res;
-
---- a/drivers/mtd/nand/sunxi_nand.c
-+++ b/drivers/mtd/nand/sunxi_nand.c
-@@ -1238,7 +1238,6 @@ static int sunxi_nand_chip_init(struct d
- {
- const struct nand_sdr_timings *timings;
- struct sunxi_nand_chip *chip;
-- struct mtd_part_parser_data ppdata;
- struct mtd_info *mtd;
- struct nand_chip *nand;
- int nsels;
-@@ -1372,8 +1371,7 @@ static int sunxi_nand_chip_init(struct d
- return ret;
- }
-
-- ppdata.of_node = np;
-- ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ ret = mtd_device_register(mtd, NULL, 0);
- if (ret) {
- dev_err(dev, "failed to register mtd device: %d\n", ret);
- nand_release(mtd);
---- a/drivers/mtd/nand/vf610_nfc.c
-+++ b/drivers/mtd/nand/vf610_nfc.c
-@@ -811,11 +811,7 @@ static int vf610_nfc_probe(struct platfo
- platform_set_drvdata(pdev, mtd);
-
- /* Register device in MTD */
-- return mtd_device_parse_register(mtd, NULL,
-- &(struct mtd_part_parser_data){
-- .of_node = chip->flash_node,
-- },
-- NULL, 0);
-+ return mtd_device_register(mtd, NULL, 0);
-
- error:
- of_node_put(chip->flash_node);
---- a/drivers/staging/mt29f_spinand/mt29f_spinand.c
-+++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c
-@@ -850,7 +850,6 @@ static int spinand_probe(struct spi_devi
- struct nand_chip *chip;
- struct spinand_info *info;
- struct spinand_state *state;
-- struct mtd_part_parser_data ppdata;
-
- info = devm_kzalloc(&spi_nand->dev, sizeof(struct spinand_info),
- GFP_KERNEL);
-@@ -894,6 +893,7 @@ static int spinand_probe(struct spi_devi
- pr_info("%s: disable ecc failed!\n", __func__);
- #endif
-
-+ nand_set_flash_node(chip, spi_nand->dev.of_node);
- chip->priv = info;
- chip->read_buf = spinand_read_buf;
- chip->write_buf = spinand_write_buf;
-@@ -916,8 +916,7 @@ static int spinand_probe(struct spi_devi
- if (nand_scan(mtd, 1))
- return -ENXIO;
-
-- ppdata.of_node = spi_nand->dev.of_node;
-- return mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0);
-+ return mtd_device_register(mtd, NULL, 0);
- }
-
- /*