Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8a892d69 authored by Mark Brown's avatar Mark Brown
Browse files

regmap: Bypass the cache when applying patches



Otherwise any patch that affects a register which is writable may trash
cached values.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent d9db7627
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -273,6 +273,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) {
@@ -281,6 +282,7 @@ int regcache_sync(struct regmap *map)
			goto out;
		}
	}
	map->cache_bypass = 0;

	if (map->cache_ops->sync) {
		ret = map->cache_ops->sync(map);