Commit 4816bd1c authored by Mark Brown's avatar Mark Brown Committed by Samuel Ortiz

mfd: arizona: Clean up on failed runtime resume

Make sure that we don't leave the device enabled needlessly.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 1816cb34
...@@ -235,18 +235,21 @@ static int arizona_runtime_resume(struct device *dev) ...@@ -235,18 +235,21 @@ static int arizona_runtime_resume(struct device *dev)
ret = arizona_wait_for_boot(arizona); ret = arizona_wait_for_boot(arizona);
if (ret != 0) { if (ret != 0) {
regulator_disable(arizona->dcvdd); goto err;
return ret;
} }
ret = regcache_sync(arizona->regmap); ret = regcache_sync(arizona->regmap);
if (ret != 0) { if (ret != 0) {
dev_err(arizona->dev, "Failed to restore register cache\n"); dev_err(arizona->dev, "Failed to restore register cache\n");
regulator_disable(arizona->dcvdd); goto err;
return ret;
} }
return 0; return 0;
err:
regcache_cache_only(arizona->regmap, true);
regulator_disable(arizona->dcvdd);
return ret;
} }
static int arizona_runtime_suspend(struct device *dev) static int arizona_runtime_suspend(struct device *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment