[U-Boot] [PATCH v4 21/21] dm-sf: Re-factorize spi_flash_std_probe code

Jagan Teki jteki at openedev.com
Mon Oct 12 17:01:14 CEST 2015


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 <jteki at 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



More information about the U-Boot mailing list