diff options
Diffstat (limited to 'drivers/base/regmap/regcache.c')
-rw-r--r-- | drivers/base/regmap/regcache.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index d1daa5e9fadf..5cd2a37e7688 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c | |||
@@ -268,6 +268,17 @@ int regcache_sync(struct regmap *map) | |||
268 | map->cache_ops->name); | 268 | map->cache_ops->name); |
269 | name = map->cache_ops->name; | 269 | name = map->cache_ops->name; |
270 | trace_regcache_sync(map->dev, name, "start"); | 270 | trace_regcache_sync(map->dev, name, "start"); |
271 | |||
272 | /* Apply any patch first */ | ||
273 | for (i = 0; i < map->patch_regs; i++) { | ||
274 | ret = _regmap_write(map, map->patch[i].reg, map->patch[i].def); | ||
275 | if (ret != 0) { | ||
276 | dev_err(map->dev, "Failed to write %x = %x: %d\n", | ||
277 | map->patch[i].reg, map->patch[i].def, ret); | ||
278 | goto out; | ||
279 | } | ||
280 | } | ||
281 | |||
271 | if (!map->cache_dirty) | 282 | if (!map->cache_dirty) |
272 | goto out; | 283 | goto out; |
273 | if (map->cache_ops->sync) { | 284 | if (map->cache_ops->sync) { |