summaryrefslogtreecommitdiffstats
path: root/drivers/mci
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-12-11 16:00:51 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-12-14 15:29:32 +0100
commite3a2fb4b4f6866783e95b94b50b7bfdb9a3325cc (patch)
tree7f5eb83e4e76e5130ed81bddb173ed9c56e3075a /drivers/mci
parent4b9a26cc0c435d4433a53feb19cf37dfbc2ef79a (diff)
downloadbarebox-e3a2fb4b4f6866783e95b94b50b7bfdb9a3325cc.tar.gz
barebox-e3a2fb4b4f6866783e95b94b50b7bfdb9a3325cc.tar.xz
mci: omap: use IS_ENABLED() rather than #ifdef
While touching it propagate the errors from read/write functions instead of silently ignoring them. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci')
-rw-r--r--drivers/mci/omap_hsmmc.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c
index 9e7ecabf85..d8e40aba20 100644
--- a/drivers/mci/omap_hsmmc.c
+++ b/drivers/mci/omap_hsmmc.c
@@ -352,7 +352,6 @@ static int mmc_read_data(struct omap_hsmmc *hsmmc, char *buf, unsigned int size)
return 0;
}
-#ifdef CONFIG_MCI_WRITE
static int mmc_write_data(struct omap_hsmmc *hsmmc, const char *buf, unsigned int size)
{
struct hsmmc *mmc_base = hsmmc->base;
@@ -406,7 +405,6 @@ static int mmc_write_data(struct omap_hsmmc *hsmmc, const char *buf, unsigned in
}
return 0;
}
-#endif
static int mmc_send_cmd(struct mci_host *mci, struct mci_cmd *cmd,
struct mci_data *data)
@@ -517,13 +515,18 @@ static int mmc_send_cmd(struct mci_host *mci, struct mci_cmd *cmd,
}
}
- if (data && (data->flags & MMC_DATA_READ))
- mmc_read_data(hsmmc, data->dest, data->blocksize * data->blocks);
-#ifdef CONFIG_MCI_WRITE
- else if (data && (data->flags & MMC_DATA_WRITE))
- mmc_write_data(hsmmc, data->src, data->blocksize * data->blocks);
-#endif
- return 0;
+ if (!data)
+ return 0;
+
+ if (data->flags & MMC_DATA_READ)
+ return mmc_read_data(hsmmc, data->dest,
+ data->blocksize * data->blocks);
+
+ if (IS_ENABLED(CONFIG_MCI_WRITE))
+ return mmc_write_data(hsmmc, data->src,
+ data->blocksize * data->blocks);
+
+ return -ENOSYS;
}
static void mmc_set_ios(struct mci_host *mci, struct mci_ios *ios)