
set_ios callback has a return value of 'int' but the mmc_set_ios() function ignore this. Modify mmc_set_ios() and the callers of mmc_set_ios() to to return the error status.
Signed-off-by: Jean-Jacques Hiblot jjhiblot@ti.com --- drivers/mmc/mmc.c | 16 ++++++++++------ include/mmc.h | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 2931871..2ae6f1c 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1193,14 +1193,18 @@ static inline int bus_width(uint cap) }
#ifndef CONFIG_DM_MMC_OPS -static void mmc_set_ios(struct mmc *mmc) +static int mmc_set_ios(struct mmc *mmc) { + int ret = 0; + if (mmc->cfg->ops->set_ios) - mmc->cfg->ops->set_ios(mmc); + ret = mmc->cfg->ops->set_ios(mmc); + + return ret; } #endif
-void mmc_set_clock(struct mmc *mmc, uint clock) +int mmc_set_clock(struct mmc *mmc, uint clock) { if (clock > mmc->cfg->f_max) clock = mmc->cfg->f_max; @@ -1210,14 +1214,14 @@ void mmc_set_clock(struct mmc *mmc, uint clock)
mmc->clock = clock;
- mmc_set_ios(mmc); + return mmc_set_ios(mmc); }
-static void mmc_set_bus_width(struct mmc *mmc, uint width) +static int mmc_set_bus_width(struct mmc *mmc, uint width) { mmc->bus_width = width;
- mmc_set_ios(mmc); + return mmc_set_ios(mmc); }
void mmc_dump_capabilities(const char *text, uint caps) diff --git a/include/mmc.h b/include/mmc.h index 3c6971d..9f20eb4 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -540,7 +540,7 @@ int mmc_unbind(struct udevice *dev); int mmc_initialize(bd_t *bis); int mmc_init(struct mmc *mmc); int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size); -void mmc_set_clock(struct mmc *mmc, uint clock); +int mmc_set_clock(struct mmc *mmc, uint clock); struct mmc *find_mmc_device(int dev_num); int mmc_set_dev(int dev_num); void print_mmc_devices(char separator);