Browse Source

regmap: Use async I/O for patch application

Try to speed up patch application a little using async I/O.

Signed-off-by: Mark Brown <broonie@linaro.org>
Mark Brown 12 years ago
parent
commit
1a25f26138
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/base/regmap/regmap.c

+ 4 - 0
drivers/base/regmap/regmap.c

@@ -2029,6 +2029,7 @@ int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
 	bypass = map->cache_bypass;
 
 	map->cache_bypass = true;
+	map->async = true;
 
 	/* Write out first; it's useful to apply even if we fail later. */
 	for (i = 0; i < num_regs; i++) {
@@ -2052,10 +2053,13 @@ int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
 	}
 
 out:
+	map->async = false;
 	map->cache_bypass = bypass;
 
 	map->unlock(map->lock_arg);
 
+	regmap_async_complete(map);
+
 	return ret;
 }
 EXPORT_SYMBOL_GPL(regmap_register_patch);