Merge remote-tracking branch 'regmap/fix/cache' into regmap-linus
This commit is contained in:
commit
59e618a6ce
|
@ -143,7 +143,7 @@ static int rbtree_show(struct seq_file *s, void *ignored)
|
||||||
int registers = 0;
|
int registers = 0;
|
||||||
int this_registers, average;
|
int this_registers, average;
|
||||||
|
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
|
|
||||||
mem_size = sizeof(*rbtree_ctx);
|
mem_size = sizeof(*rbtree_ctx);
|
||||||
mem_size += BITS_TO_LONGS(map->cache_present_nbits) * sizeof(long);
|
mem_size += BITS_TO_LONGS(map->cache_present_nbits) * sizeof(long);
|
||||||
|
@ -170,7 +170,7 @@ static int rbtree_show(struct seq_file *s, void *ignored)
|
||||||
seq_printf(s, "%d nodes, %d registers, average %d registers, used %zu bytes\n",
|
seq_printf(s, "%d nodes, %d registers, average %d registers, used %zu bytes\n",
|
||||||
nodes, registers, average, mem_size);
|
nodes, registers, average, mem_size);
|
||||||
|
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -391,8 +391,6 @@ static int regcache_rbtree_sync(struct regmap *map, unsigned int min,
|
||||||
for (node = rb_first(&rbtree_ctx->root); node; node = rb_next(node)) {
|
for (node = rb_first(&rbtree_ctx->root); node; node = rb_next(node)) {
|
||||||
rbnode = rb_entry(node, struct regcache_rbtree_node, node);
|
rbnode = rb_entry(node, struct regcache_rbtree_node, node);
|
||||||
|
|
||||||
if (rbnode->base_reg < min)
|
|
||||||
continue;
|
|
||||||
if (rbnode->base_reg > max)
|
if (rbnode->base_reg > max)
|
||||||
break;
|
break;
|
||||||
if (rbnode->base_reg + rbnode->blklen < min)
|
if (rbnode->base_reg + rbnode->blklen < min)
|
||||||
|
|
|
@ -270,7 +270,7 @@ int regcache_sync(struct regmap *map)
|
||||||
|
|
||||||
BUG_ON(!map->cache_ops || !map->cache_ops->sync);
|
BUG_ON(!map->cache_ops || !map->cache_ops->sync);
|
||||||
|
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
/* Remember the initial bypass state */
|
/* Remember the initial bypass state */
|
||||||
bypass = map->cache_bypass;
|
bypass = map->cache_bypass;
|
||||||
dev_dbg(map->dev, "Syncing %s cache\n",
|
dev_dbg(map->dev, "Syncing %s cache\n",
|
||||||
|
@ -306,7 +306,7 @@ out:
|
||||||
trace_regcache_sync(map->dev, name, "stop");
|
trace_regcache_sync(map->dev, name, "stop");
|
||||||
/* Restore the bypass state */
|
/* Restore the bypass state */
|
||||||
map->cache_bypass = bypass;
|
map->cache_bypass = bypass;
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ int regcache_sync_region(struct regmap *map, unsigned int min,
|
||||||
|
|
||||||
BUG_ON(!map->cache_ops || !map->cache_ops->sync);
|
BUG_ON(!map->cache_ops || !map->cache_ops->sync);
|
||||||
|
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
|
|
||||||
/* Remember the initial bypass state */
|
/* Remember the initial bypass state */
|
||||||
bypass = map->cache_bypass;
|
bypass = map->cache_bypass;
|
||||||
|
@ -352,7 +352,7 @@ out:
|
||||||
trace_regcache_sync(map->dev, name, "stop region");
|
trace_regcache_sync(map->dev, name, "stop region");
|
||||||
/* Restore the bypass state */
|
/* Restore the bypass state */
|
||||||
map->cache_bypass = bypass;
|
map->cache_bypass = bypass;
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -372,11 +372,11 @@ EXPORT_SYMBOL_GPL(regcache_sync_region);
|
||||||
*/
|
*/
|
||||||
void regcache_cache_only(struct regmap *map, bool enable)
|
void regcache_cache_only(struct regmap *map, bool enable)
|
||||||
{
|
{
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
WARN_ON(map->cache_bypass && enable);
|
WARN_ON(map->cache_bypass && enable);
|
||||||
map->cache_only = enable;
|
map->cache_only = enable;
|
||||||
trace_regmap_cache_only(map->dev, enable);
|
trace_regmap_cache_only(map->dev, enable);
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(regcache_cache_only);
|
EXPORT_SYMBOL_GPL(regcache_cache_only);
|
||||||
|
|
||||||
|
@ -391,9 +391,9 @@ EXPORT_SYMBOL_GPL(regcache_cache_only);
|
||||||
*/
|
*/
|
||||||
void regcache_mark_dirty(struct regmap *map)
|
void regcache_mark_dirty(struct regmap *map)
|
||||||
{
|
{
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
map->cache_dirty = true;
|
map->cache_dirty = true;
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(regcache_mark_dirty);
|
EXPORT_SYMBOL_GPL(regcache_mark_dirty);
|
||||||
|
|
||||||
|
@ -410,11 +410,11 @@ EXPORT_SYMBOL_GPL(regcache_mark_dirty);
|
||||||
*/
|
*/
|
||||||
void regcache_cache_bypass(struct regmap *map, bool enable)
|
void regcache_cache_bypass(struct regmap *map, bool enable)
|
||||||
{
|
{
|
||||||
map->lock(map);
|
map->lock(map->lock_arg);
|
||||||
WARN_ON(map->cache_only && enable);
|
WARN_ON(map->cache_only && enable);
|
||||||
map->cache_bypass = enable;
|
map->cache_bypass = enable;
|
||||||
trace_regmap_cache_bypass(map->dev, enable);
|
trace_regmap_cache_bypass(map->dev, enable);
|
||||||
map->unlock(map);
|
map->unlock(map->lock_arg);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(regcache_cache_bypass);
|
EXPORT_SYMBOL_GPL(regcache_cache_bypass);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue