diff options
author | Dylan Reid <dgreid@chromium.org> | 2014-03-19 00:45:09 +0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-19 14:38:56 +0400 |
commit | 83f8475ce99fa1c44b03059b6cc5dcaae69b4819 (patch) | |
tree | 2328352e758b39bed089419ca9cec7a72c59643f /drivers/base | |
parent | 756173285e87c792c6fa8eaaaf1217cfcf1416dd (diff) | |
download | linux-83f8475ce99fa1c44b03059b6cc5dcaae69b4819.tar.xz |
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.c | 3 |
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); |