Message ID | 1444679655-30349-5-git-send-email-jteki@openedev.com |
---|---|
State | Superseded |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
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 <jteki@openedev.com> > --- > drivers/mtd/spi/sf_probe.c | 26 ++++++++++++++------------ > 1 file changed, 14 insertions(+), 12 deletions(-) Reviewed-by: Heiko Schocher <hs@denx.de> 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); > } >
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); }
This patch adds MTD support to non-dm spi_flash interface code. Signed-off-by: Jagan Teki <jteki@openedev.com> --- drivers/mtd/spi/sf_probe.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)