Message ID | 1439505965-134748-3-git-send-email-computersforpeace@gmail.com |
---|---|
State | Accepted |
Commit | c9ec3900abf279d9276a0661c9bed2550c1f0bb5 |
Headers | show |
On 14 August 2015 at 00:46, Brian Norris <computersforpeace@gmail.com> wrote: > Layering suggests that the SPI NOR layer (not the hardware driver) > should be initializing the MTD layer. > > Signed-off-by: Brian Norris <computersforpeace@gmail.com> Boots fine on Hitex LPC4350 Evaluation Board (lpc18xx) with SPI-NOR NXP SPIFI and JFFS2 root on s25sl064p. Tested-by: Joachim Eastwood <manabian@gmail.com> regards, Joachim Eastwood
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 9cd3631170ef..24965ae9f7aa 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -205,7 +205,6 @@ static int m25p_probe(struct spi_device *spi) nor->priv = flash; spi_set_drvdata(spi, flash); - flash->mtd.priv = nor; flash->spi = spi; if (spi->mode & SPI_RX_QUAD) diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index 2a17ec6269ff..cefc9636e551 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -1016,7 +1016,6 @@ static int fsl_qspi_probe(struct platform_device *pdev) nor->mtd = mtd; nor->dev = dev; nor->priv = q; - mtd->priv = nor; /* fill the hooks */ nor->read_reg = fsl_qspi_read_reg; diff --git a/drivers/mtd/spi-nor/nxp-spifi.c b/drivers/mtd/spi-nor/nxp-spifi.c index 9ad1dd0896c0..ce6a478a02a5 100644 --- a/drivers/mtd/spi-nor/nxp-spifi.c +++ b/drivers/mtd/spi-nor/nxp-spifi.c @@ -331,7 +331,6 @@ static int nxp_spifi_setup_flash(struct nxp_spifi *spifi, writel(ctrl, spifi->io_base + SPIFI_CTRL); - spifi->mtd.priv = &spifi->nor; spifi->nor.mtd = &spifi->mtd; spifi->nor.dev = spifi->dev; spifi->nor.priv = spifi; diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 47516d3af015..cba513373d5e 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -1066,6 +1066,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) if (!mtd->name) mtd->name = dev_name(dev); + mtd->priv = nor; mtd->type = MTD_NORFLASH; mtd->writesize = 1; mtd->flags = MTD_CAP_NORFLASH;
Layering suggests that the SPI NOR layer (not the hardware driver) should be initializing the MTD layer. Signed-off-by: Brian Norris <computersforpeace@gmail.com> --- drivers/mtd/devices/m25p80.c | 1 - drivers/mtd/spi-nor/fsl-quadspi.c | 1 - drivers/mtd/spi-nor/nxp-spifi.c | 1 - drivers/mtd/spi-nor/spi-nor.c | 1 + 4 files changed, 1 insertion(+), 3 deletions(-)