diff options
| author | 2013-01-04 17:16:12 +0000 | |
|---|---|---|
| committer | 2013-01-22 03:12:44 +0100 | |
| commit | 9270bdf5405668ca5d75ace1d7872e2762162c47 (patch) | |
| tree | 464604170247f7c12c9cb77b584ebdee3e29f004 | |
| parent | mfd: tc3589x: Use simple irqdomain (diff) | |
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>
| -rw-r--r-- | drivers/mfd/arizona-core.c | 7 |
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; } |
