spi_flash_probe_tail code looks not in proper shape
to add more functionalities. hence refactorized
so-that it's more readable and hence we may extend
more functionalies to it.

Cc: Bin Meng <bmeng...@gmail.com>
Cc: Troy Kisky <troy.ki...@boundarydevices.com>
Signed-off-by: Jagan Teki <jt...@openedev.com>
---
 drivers/mtd/spi/sf_probe.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index ea24fa0..603c6bc 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -123,15 +123,12 @@ int spi_flash_std_erase(struct udevice *dev, u32 offset, 
size_t len)
 
 int spi_flash_std_probe(struct udevice *dev)
 {
-       struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev);
+       struct spi_flash *flash = dev_get_uclass_priv(dev);
        struct spi_slave *slave = dev_get_parent_priv(dev);
-       struct spi_flash *flash;
        int ret;
 
-       debug("%s: slave=%p, cs=%d\n", __func__, slave, plat->cs);
-
-       flash = dev_get_uclass_priv(dev);
        flash->dev = dev;
+       flash->spi = slave;
 
        /* Claim spi bus */
        ret = spi_claim_bus(slave);
@@ -143,14 +140,23 @@ int spi_flash_std_probe(struct udevice *dev)
        ret = spi_flash_scan(flash);
        if (ret) {
                ret = -EINVAL;
-               goto err_read_id;
+               goto err_scan;
        }
 
 #ifdef CONFIG_SPI_FLASH_MTD
        ret = spi_flash_mtd_register(flash);
+       if (ret) {
+               printf("SF: failed to register mtd device: %d\n", ret);
+               goto err_mtd;
+       }
 #endif
+       return ret;
 
-err_read_id:
+#ifdef CONFIG_SPI_FLASH_MTD
+err_mtd:
+       spi_free_slave(slave);
+#endif
+err_scan:
        spi_release_bus(slave);
        return ret;
 }
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to