[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