diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-12-11 16:00:51 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-12-14 15:29:32 +0100 |
commit | e3a2fb4b4f6866783e95b94b50b7bfdb9a3325cc (patch) | |
tree | 7f5eb83e4e76e5130ed81bddb173ed9c56e3075a /drivers/mci | |
parent | 4b9a26cc0c435d4433a53feb19cf37dfbc2ef79a (diff) | |
download | barebox-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.c | 21 |
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) |