summaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
authorDylan Reid <dgreid@chromium.org>2014-03-18 13:45:09 -0700
committerMark Brown <broonie@linaro.org>2014-03-19 10:38:56 +0000
commit83f8475ce99fa1c44b03059b6cc5dcaae69b4819 (patch)
tree2328352e758b39bed089419ca9cec7a72c59643f /drivers/base
parent756173285e87c792c6fa8eaaaf1217cfcf1416dd (diff)
regmap: cache: Don't attempt to sync non-writeable registers
In the regcache_default_sync, if a register isn't writeable, then _regmap_write will return an error and the rest of the sync will be aborted. Avoid this by checking if a register is writeable before trying to sync it. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/regmap/regcache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index bb3ba42e0329..a9d8d7be6aa3 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -253,7 +253,8 @@ static int regcache_default_sync(struct regmap *map, unsigned int min,
unsigned int val;
int ret;
- if (regmap_volatile(map, reg))
+ if (regmap_volatile(map, reg) ||
+ !regmap_writeable(map, reg))
continue;
ret = regcache_read(map, reg, &val);