diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-01-25 21:05:48 +0000 |
---|---|---|
committer | Lokesh Pathak <lpathak@nvidia.com> | 2012-03-05 07:58:17 -0800 |
commit | 89c982f86904a01c60dc9fee0cfb27cd3418d905 (patch) | |
tree | 9f4a640f92303f73ce744117e56a742cb6494744 /drivers/base | |
parent | 33b150e9ccbcfa11d6b14c9a5e00b84b765512e2 (diff) |
regmap: Bypass the cache when applying patches
Otherwise any patch that affects a register which is writable may trash
cached values.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(cherry picked from commit 8a892d6996b60c822f19ad1844eb15b96ce393c7)
Change-Id: I278d4f4aa34709e2e15d0cc83238e4b419f159cb
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/87580
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/regmap/regcache.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 684e3d2584be..c152646db79f 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c @@ -270,6 +270,7 @@ int regcache_sync(struct regmap *map) goto out; /* Apply any patch first */ + map->cache_bypass = 1; for (i = 0; i < map->patch_regs; i++) { ret = _regmap_write(map, map->patch[i].reg, map->patch[i].def); if (ret != 0) { @@ -278,6 +279,7 @@ int regcache_sync(struct regmap *map) goto out; } } + map->cache_bypass = 0; if (map->cache_ops->sync) { ret = map->cache_ops->sync(map); |