[U-Boot] [PATCH v7 14/34] dm-sf: Re-factorize spi_flash_std_probe code

Jagan Teki
2015-11-26T12:03:58Z

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.cn@gmail.com>
Cc: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Jagan Teki <jteki@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