diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-26 10:34:22 +0200 |
---|---|---|
committer | Lokesh Pathak <lpathak@nvidia.com> | 2012-03-05 07:48:03 -0800 |
commit | 5b231be1b3bfdffa300f68c0d2fbd72df1b7f653 (patch) | |
tree | b93582ee2b20589c3d4ec30abae0278cc0b413f0 /drivers/base/regmap/regmap.c | |
parent | ca83428e42838440aa62f9201a53f62afc8f540b (diff) |
regmap: Track if the register cache is dirty and suppress unneeded syncs
Allow drivers to optimise out the register cache sync if they didn't need
to do one. If the hardware is desynced from the register cache (by power
loss for example) then the driver should call regcache_mark_dirty() to
let the core know about this.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(cherry picked from commit 8ae0d7e8a918e9603748abe9b31984fc5d96abb3)
Change-Id: If3380b73669ebaaf474cf46fdd2f4339345c66a3
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/87549
Diffstat (limited to 'drivers/base/regmap/regmap.c')
-rw-r--r-- | drivers/base/regmap/regmap.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index b9badfe93f6b..e527b0c9e40a 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -306,8 +306,10 @@ int _regmap_write(struct regmap *map, unsigned int reg, ret = regcache_write(map, reg, val); if (ret != 0) return ret; - if (map->cache_only) + if (map->cache_only) { + map->cache_dirty = true; return 0; + } } trace_regmap_reg_write(map->dev, reg, val); |