From 0ddae04c226983e1e064d8750b8bb8724f077ad9 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Tue, 9 Aug 2016 11:23:32 +0200 Subject: brcm63xx: backport mtd of node changes from upstream Should fix parser data containing uninitialized values for of probed physmap flashes, which could break e.g. the redboot parser. Signed-off-by: Jonas Gorski --- ...or-drop-unnecessary-partition-parser-data.patch | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 target/linux/brcm63xx/patches-4.4/000-4.5-04-mtd-spi-nor-drop-unnecessary-partition-parser-data.patch (limited to 'target/linux/brcm63xx/patches-4.4/000-4.5-04-mtd-spi-nor-drop-unnecessary-partition-parser-data.patch') diff --git a/target/linux/brcm63xx/patches-4.4/000-4.5-04-mtd-spi-nor-drop-unnecessary-partition-parser-data.patch b/target/linux/brcm63xx/patches-4.4/000-4.5-04-mtd-spi-nor-drop-unnecessary-partition-parser-data.patch new file mode 100644 index 0000000000..dafde1660d --- /dev/null +++ b/target/linux/brcm63xx/patches-4.4/000-4.5-04-mtd-spi-nor-drop-unnecessary-partition-parser-data.patch @@ -0,0 +1,83 @@ +From df02c885f8697546da41665f28dde5e30ce99674 Mon Sep 17 00:00:00 2001 +From: Brian Norris +Date: Fri, 30 Oct 2015 20:33:26 -0700 +Subject: [PATCH] mtd: spi-nor: drop unnecessary partition parser data + +Now that the SPI-NOR/MTD framework pass the 'flash_node' through to the +partition parsing code, we don't have to do it ourselves. + +Also convert to mtd_device_register(), since we don't need the 2nd and +3rd parameters anymore. + +Signed-off-by: Brian Norris +Reviewed-by: Boris Brezillon +--- + drivers/mtd/devices/m25p80.c | 8 ++------ + drivers/mtd/spi-nor/fsl-quadspi.c | 4 +--- + drivers/mtd/spi-nor/nxp-spifi.c | 4 +--- + 3 files changed, 4 insertions(+), 12 deletions(-) + +--- a/drivers/mtd/devices/m25p80.c ++++ b/drivers/mtd/devices/m25p80.c +@@ -197,7 +197,6 @@ static int m25p80_erase(struct spi_nor * + */ + static int m25p_probe(struct spi_device *spi) + { +- struct mtd_part_parser_data ppdata; + struct flash_platform_data *data; + struct m25p *flash; + struct spi_nor *nor; +@@ -249,11 +248,8 @@ static int m25p_probe(struct spi_device + if (ret) + return ret; + +- ppdata.of_node = spi->dev.of_node; +- +- return mtd_device_parse_register(&nor->mtd, NULL, &ppdata, +- data ? data->parts : NULL, +- data ? data->nr_parts : 0); ++ return mtd_device_register(&nor->mtd, data ? data->parts : NULL, ++ data ? data->nr_parts : 0); + } + + +--- a/drivers/mtd/spi-nor/fsl-quadspi.c ++++ b/drivers/mtd/spi-nor/fsl-quadspi.c +@@ -927,7 +927,6 @@ static void fsl_qspi_unprep(struct spi_n + static int fsl_qspi_probe(struct platform_device *pdev) + { + struct device_node *np = pdev->dev.of_node; +- struct mtd_part_parser_data ppdata; + struct device *dev = &pdev->dev; + struct fsl_qspi *q; + struct resource *res; +@@ -1038,8 +1037,7 @@ static int fsl_qspi_probe(struct platfor + if (ret) + goto mutex_failed; + +- ppdata.of_node = np; +- ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); ++ ret = mtd_device_register(mtd, NULL, 0); + if (ret) + goto mutex_failed; + +--- a/drivers/mtd/spi-nor/nxp-spifi.c ++++ b/drivers/mtd/spi-nor/nxp-spifi.c +@@ -271,7 +271,6 @@ static void nxp_spifi_dummy_id_read(stru + static int nxp_spifi_setup_flash(struct nxp_spifi *spifi, + struct device_node *np) + { +- struct mtd_part_parser_data ppdata; + enum read_mode flash_read; + u32 ctrl, property; + u16 mode = 0; +@@ -361,8 +360,7 @@ static int nxp_spifi_setup_flash(struct + return ret; + } + +- ppdata.of_node = np; +- ret = mtd_device_parse_register(&spifi->nor.mtd, NULL, &ppdata, NULL, 0); ++ ret = mtd_device_register(&spifi->nor.mtd, NULL, 0); + if (ret) { + dev_err(spifi->dev, "mtd device parse failed\n"); + return ret; -- cgit v1.2.3