diff options
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.patch | 725 |
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); - } - - /* |