Merge tag 'v3.3-rc4' into for-3.4 in order to resolve the conflict
[firefly-linux-kernel-4.4.55.git] / drivers / base / regmap / regcache.c
index d1daa5e9fadf322b4a6e4d9e7f5d60e71eea0e40..5cd2a37e7688a3d7fec59d9a9a6d9f181107a6d3 100644 (file)
@@ -268,6 +268,17 @@ int regcache_sync(struct regmap *map)
                map->cache_ops->name);
        name = map->cache_ops->name;
        trace_regcache_sync(map->dev, name, "start");
+
+       /* Apply any patch first */
+       for (i = 0; i < map->patch_regs; i++) {
+               ret = _regmap_write(map, map->patch[i].reg, map->patch[i].def);
+               if (ret != 0) {
+                       dev_err(map->dev, "Failed to write %x = %x: %d\n",
+                               map->patch[i].reg, map->patch[i].def, ret);
+                       goto out;
+               }
+       }
+
        if (!map->cache_dirty)
                goto out;
        if (map->cache_ops->sync) {