From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 29 Oct 2015 07:37:04 +0100 Subject: [U-Boot] [PATCH 5/8] sf: Add MTD support for non-dm spi_flash interface In-Reply-To: <1444679655-30349-5-git-send-email-jteki@openedev.com> References: <1444679655-30349-1-git-send-email-jteki@openedev.com> <1444679655-30349-5-git-send-email-jteki@openedev.com> Message-ID: <5631BE90.4080200@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Jagan, Am 12.10.2015 um 21:54 schrieb Jagan Teki: > This patch adds MTD support to non-dm spi_flash > interface code. > > Signed-off-by: Jagan Teki > --- > drivers/mtd/spi/sf_probe.c | 26 ++++++++++++++------------ > 1 file changed, 14 insertions(+), 12 deletions(-) Reviewed-by: Heiko Schocher bye, Heiko > > diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c > index 5e314e2..60abaf2 100644 > --- a/drivers/mtd/spi/sf_probe.c > +++ b/drivers/mtd/spi/sf_probe.c > @@ -26,17 +26,24 @@ struct spi_flash_priv { > #ifndef CONFIG_DM_SPI_FLASH > struct spi_flash *spi_flash_probe_tail(struct spi_slave *bus) > { > + struct spi_flash_priv *priv; > struct spi_flash *flash; > int ret; > > - /* Allocate space if needed (not used by sf-uclass */ > - flash = calloc(1, sizeof(*flash)); > - if (!flash) { > - debug("SF: Failed to allocate spi_flash\n"); > + /* Allocate space if needed (not used by sf-uclass) */ > + priv = calloc(1, sizeof(*priv)); > + if (!priv) { > + debug("SF: Failed to allocate spi_flash_priv\n"); > return NULL; > } > > + flash = &priv->flash; > + flash->mtd = &priv->mtd; > + > flash->spi = bus; > + flash->priv = priv; > + > + priv->mtd.priv = flash; > > /* Claim spi bus */ > ret = spi_claim_bus(bus); > @@ -49,19 +56,16 @@ struct spi_flash *spi_flash_probe_tail(struct spi_slave *bus) > if (ret) > goto err_scan; > > -#ifdef CONFIG_SPI_FLASH_MTD > - ret = spi_flash_mtd_register(flash); > + ret = add_mtd_device(&priv->mtd); > if (ret) { > printf("SF: failed to register mtd device: %d\n", ret); > goto err_mtd; > } > -#endif > + > return flash; > > -#ifdef CONFIG_SPI_FLASH_MTD > err_mtd: > spi_free_slave(bus); > -#endif > err_scan: > spi_release_bus(bus); > err_claim: > @@ -95,9 +99,7 @@ struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node, > > void spi_flash_free(struct spi_flash *flash) > { > -#ifdef CONFIG_SPI_FLASH_MTD > - spi_flash_mtd_unregister(); > -#endif > + del_mtd_device(flash->mtd); > spi_free_slave(flash->spi); > free(flash); > } > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany