diff options
author | Mark Brown <broonie@linaro.org> | 2013-08-31 14:25:11 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-08-31 14:25:11 -0400 |
commit | 4ff4eb9e8c535f67ad2c1adc6c168ece1fb763bc (patch) | |
tree | 34a9a67dc8d427959e649cebbab9bee7ddef2d1b | |
parent | 26ee47411ae22caa07d3f3b63ca6d097cba6681b (diff) | |
parent | 515f2261703d09c6b647a5687b7d657dd5911065 (diff) |
Merge remote-tracking branch 'regmap/topic/cache' into regmap-next
-rw-r--r-- | drivers/base/regmap/internal.h | 2 | ||||
-rw-r--r-- | drivers/base/regmap/regcache.c | 3 | ||||
-rw-r--r-- | drivers/base/regmap/regmap.c | 3 |
3 files changed, 4 insertions, 4 deletions
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h index 29c83160ca29..5308e3e870ba 100644 --- a/drivers/base/regmap/internal.h +++ b/drivers/base/regmap/internal.h | |||
@@ -223,7 +223,7 @@ int regcache_set_reg_present(struct regmap *map, unsigned int reg); | |||
223 | static inline bool regcache_reg_present(struct regmap *map, unsigned int reg) | 223 | static inline bool regcache_reg_present(struct regmap *map, unsigned int reg) |
224 | { | 224 | { |
225 | if (!map->cache_present) | 225 | if (!map->cache_present) |
226 | return true; | 226 | return false; |
227 | if (reg > map->cache_present_nbits) | 227 | if (reg > map->cache_present_nbits) |
228 | return false; | 228 | return false; |
229 | return map->cache_present[BIT_WORD(reg)] & BIT_MASK(reg); | 229 | return map->cache_present[BIT_WORD(reg)] & BIT_MASK(reg); |
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 3455f833e473..e2abd0548e7b 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c | |||
@@ -241,9 +241,6 @@ int regcache_write(struct regmap *map, | |||
241 | 241 | ||
242 | BUG_ON(!map->cache_ops); | 242 | BUG_ON(!map->cache_ops); |
243 | 243 | ||
244 | if (!regmap_writeable(map, reg)) | ||
245 | return -EIO; | ||
246 | |||
247 | if (!regmap_volatile(map, reg)) | 244 | if (!regmap_volatile(map, reg)) |
248 | return map->cache_ops->write(map, reg, value); | 245 | return map->cache_ops->write(map, reg, value); |
249 | 246 | ||
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index e0d0c7d8a5c5..0e85367e504d 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c | |||
@@ -1261,6 +1261,9 @@ int _regmap_write(struct regmap *map, unsigned int reg, | |||
1261 | int ret; | 1261 | int ret; |
1262 | void *context = _regmap_map_get_context(map); | 1262 | void *context = _regmap_map_get_context(map); |
1263 | 1263 | ||
1264 | if (!regmap_writeable(map, reg)) | ||
1265 | return -EIO; | ||
1266 | |||
1264 | if (!map->cache_bypass && !map->defer_caching) { | 1267 | if (!map->cache_bypass && !map->defer_caching) { |
1265 | ret = regcache_write(map, reg, val); | 1268 | ret = regcache_write(map, reg, val); |
1266 | if (ret != 0) | 1269 | if (ret != 0) |