[U-Boot] [PATCH v7 22/34] sf: Add MTD support for non-dm spi_flash interface

Jagan Teki
2015-11-26T12:04:06Z

This patch adds MTD support to non-dm spi_flash
interface code.

Reviewed-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Jagan Teki <jteki@openedev.com>
---
drivers/mtd/spi/sf_probe.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index f882b3f..51a0c07 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -28,17 +28,24 @@ struct spi_flash_priv {
#ifndef CONFIG_DM_SPI_FLASH
struct spi_flash *spi_flash_probe_tail(struct spi_slave *bus)
{
+ struct spi_flash_priv *priv;
struct spi_flash *flash;
int ret;

- /* Allocate space if needed (not used by sf-uclass */
- flash = calloc(1, sizeof(*flash));
- if (!flash) {
- debug("SF: Failed to allocate spi_flash\n");
+ /* Allocate space if needed (not used by sf-uclass) */
+ priv = calloc(1, sizeof(*priv));
+ if (!priv) {
+ debug("SF: Failed to allocate spi_flash_priv\n");
return NULL;
}

+ flash = &priv->flash;
+ flash->mtd = &priv->mtd;
+
flash->spi = bus;
+ flash->priv = priv;
+
+ priv->mtd.priv = flash;

/* Claim spi bus */
ret = spi_claim_bus(bus);
@@ -51,19 +58,16 @@ struct spi_flash *spi_flash_probe_tail(struct spi_slave *bus)
if (ret)
goto err_scan;

-#ifdef CONFIG_SPI_FLASH_MTD
- ret = spi_flash_mtd_register(flash);
+ ret = add_mtd_device(&priv->mtd);
if (ret) {
printf("SF: failed to register mtd device: %d\n", ret);
goto err_mtd;
}
-#endif
+
return flash;

-#ifdef CONFIG_SPI_FLASH_MTD
err_mtd:
spi_free_slave(bus);
-#endif
err_scan:
spi_release_bus(bus);
err_claim:
@@ -97,9 +101,7 @@ struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node,

void spi_flash_free(struct spi_flash *flash)
{
-#ifdef CONFIG_SPI_FLASH_MTD
- spi_flash_mtd_unregister();
-#endif
+ del_mtd_device(flash->mtd);
spi_free_slave(flash->spi);
free(flash);
}
--
1.9.1