Commit 3dedb61e authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'regmap/topic/patch' into regmap-next

parents 1801ceaf aab13ebc
...@@ -1891,13 +1891,10 @@ EXPORT_SYMBOL_GPL(regmap_async_complete); ...@@ -1891,13 +1891,10 @@ EXPORT_SYMBOL_GPL(regmap_async_complete);
int regmap_register_patch(struct regmap *map, const struct reg_default *regs, int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
int num_regs) int num_regs)
{ {
struct reg_default *p;
int i, ret; int i, ret;
bool bypass; bool bypass;
/* If needed the implementation can be extended to support this */
if (map->patch)
return -EBUSY;
map->lock(map->lock_arg); map->lock(map->lock_arg);
bypass = map->cache_bypass; bypass = map->cache_bypass;
...@@ -1914,11 +1911,13 @@ int regmap_register_patch(struct regmap *map, const struct reg_default *regs, ...@@ -1914,11 +1911,13 @@ int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
} }
} }
map->patch = kcalloc(num_regs, sizeof(struct reg_default), GFP_KERNEL); p = krealloc(map->patch,
if (map->patch != NULL) { sizeof(struct reg_default) * (map->patch_regs + num_regs),
memcpy(map->patch, regs, GFP_KERNEL);
num_regs * sizeof(struct reg_default)); if (p) {
map->patch_regs = num_regs; memcpy(p + map->patch_regs, regs, num_regs * sizeof(*regs));
map->patch = p;
map->patch_regs += num_regs;
} else { } else {
ret = -ENOMEM; ret = -ENOMEM;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment