|
@@ -1997,8 +1997,14 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)
|
|
|
if (IS_ERR(host->vmmc)) {
|
|
|
pr_info("%s: no vmmc regulator found\n", mmc_hostname(mmc));
|
|
|
host->vmmc = NULL;
|
|
|
- } else
|
|
|
- regulator_enable(host->vmmc);
|
|
|
+ } else {
|
|
|
+ ret = regulator_enable(host->vmmc);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(host->dev,
|
|
|
+ "failed to enable regulator: %d\n", ret);
|
|
|
+ goto err_setup_bus;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (dw_mci_get_cd(mmc))
|
|
|
set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
|
|
@@ -2464,8 +2470,14 @@ int dw_mci_resume(struct dw_mci *host)
|
|
|
{
|
|
|
int i, ret;
|
|
|
|
|
|
- if (host->vmmc)
|
|
|
- regulator_enable(host->vmmc);
|
|
|
+ if (host->vmmc) {
|
|
|
+ ret = regulator_enable(host->vmmc);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(host->dev,
|
|
|
+ "failed to enable regulator: %d\n", ret);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (!mci_wait_reset(host->dev, host)) {
|
|
|
ret = -ENODEV;
|