From: Mark Brown Date: Mon, 14 Jan 2013 06:50:38 +0000 (+0900) Subject: mfd: arizona: Clean up on failed runtime resume X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4816bd1c6d5589135523b4263be2e1b8b8c97599;p=linux.git mfd: arizona: Clean up on failed runtime resume Make sure that we don't leave the device enabled needlessly. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz --- diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c index b562c7bf8a463..0962c558dc020 100644 --- a/drivers/mfd/arizona-core.c +++ b/drivers/mfd/arizona-core.c @@ -235,18 +235,21 @@ static int arizona_runtime_resume(struct device *dev) ret = arizona_wait_for_boot(arizona); if (ret != 0) { - regulator_disable(arizona->dcvdd); - return ret; + goto err; } ret = regcache_sync(arizona->regmap); if (ret != 0) { dev_err(arizona->dev, "Failed to restore register cache\n"); - regulator_disable(arizona->dcvdd); - return ret; + goto err; } return 0; + +err: + regcache_cache_only(arizona->regmap, true); + regulator_disable(arizona->dcvdd); + return ret; } static int arizona_runtime_suspend(struct device *dev)