summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2013-01-04 18:16:12 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2013-01-22 03:12:44 +0100
commit9270bdf5405668ca5d75ace1d7872e2762162c47 (patch)
tree464604170247f7c12c9cb77b584ebdee3e29f004 /drivers
parentmfd: tc3589x: Use simple irqdomain (diff)
downloadlinux-9270bdf5405668ca5d75ace1d7872e2762162c47.tar.xz
linux-9270bdf5405668ca5d75ace1d7872e2762162c47.zip
mfd: arizona: Check errors from regcache_sync()
If the control bus is unrelabile we may hit errors during regcache_sync(), especially given that it tends to be one the most dense bursts of I/O in many systems. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/arizona-core.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index bc8a3edb6bbf..222c03a5ddc0 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -239,7 +239,12 @@ static int arizona_runtime_resume(struct device *dev)
return ret;
}
- regcache_sync(arizona->regmap);
+ ret = regcache_sync(arizona->regmap);
+ if (ret != 0) {
+ dev_err(arizona->dev, "Failed to restore register cache\n");
+ regulator_disable(arizona->dcvdd);
+ return ret;
+ }
return 0;
}