aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-08-31 14:25:11 -0400
committerMark Brown <broonie@linaro.org>2013-08-31 14:25:11 -0400
commit4ff4eb9e8c535f67ad2c1adc6c168ece1fb763bc (patch)
tree34a9a67dc8d427959e649cebbab9bee7ddef2d1b
parent26ee47411ae22caa07d3f3b63ca6d097cba6681b (diff)
parent515f2261703d09c6b647a5687b7d657dd5911065 (diff)
Merge remote-tracking branch 'regmap/topic/cache' into regmap-next
-rw-r--r--drivers/base/regmap/internal.h2
-rw-r--r--drivers/base/regmap/regcache.c3
-rw-r--r--drivers/base/regmap/regmap.c3
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);
223static inline bool regcache_reg_present(struct regmap *map, unsigned int reg) 223static 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)