[PATCH 3/4] mci: core: Do not fail if vmmc regulator fail
Alexander Shiyan
shc_work at mail.ru
Sat Jun 18 06:28:57 PDT 2016
The vmmc regulator can be an usupported device for barebox,
the specific MFD regulator type, for example. Just lets think is all ok.
Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
drivers/mci/mci-core.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 59f6675..086b564 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -1585,11 +1585,13 @@ static int mci_card_probe(struct mci *mci)
return -ENODEV;
}
- ret = regulator_enable(host->supply);
- if (ret) {
- dev_err(&mci->dev, "failed to enable regulator: %s\n",
+ if (!IS_ERR(host->supply)) {
+ ret = regulator_enable(host->supply);
+ if (ret) {
+ dev_err(&mci->dev, "failed to enable regulator: %s\n",
strerror(-ret));
- return ret;
+ return ret;
+ }
}
/* start with a host interface reset */
@@ -1680,7 +1682,8 @@ on_error:
if (rc != 0) {
host->clock = 0; /* disable the MCI clock */
mci_set_ios(mci);
- regulator_disable(host->supply);
+ if (!IS_ERR(host->supply))
+ regulator_disable(host->supply);
}
return rc;
@@ -1767,10 +1770,8 @@ int mci_register(struct mci_host *host)
mci->dev.detect = mci_detect;
host->supply = regulator_get(host->hw_dev, "vmmc");
- if (IS_ERR(host->supply)) {
- ret = PTR_ERR(host->supply);
- goto err_free;
- }
+ if (IS_ERR(host->supply))
+ dev_err(&mci->dev, "Failed to get 'vmmc' regulator.\n");
ret = register_device(&mci->dev);
if (ret)
--
2.4.9
More information about the barebox
mailing list