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.

Signed-off-by: Jagan Teki <jt...@openedev.com>
---
Changes for v4, v3, v2:
        - none

 drivers/mtd/spi/sf_probe.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index 319b7e6..87ac33e 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_parentdata(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);
@@ -140,17 +137,26 @@ int spi_flash_std_probe(struct udevice *dev)
                return ret;
        }
 
-       ret = spi_flash_scan(slave, flash);
+       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