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 <jt...@openedev.com>
---
  drivers/mtd/spi/sf_probe.c | 26 ++++++++++++++------------
  1 file changed, 14 insertions(+), 12 deletions(-)

Reviewed-by: Heiko Schocher <h...@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);
  }


--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to