mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
regcache: Factor out regcache_hw_exit() helper
Factor out regcache_hw_exit() helper to make error and exit paths clearer. This helps to avoid missing changes in case the code gets shuffled in the future. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260303092820.2818138-2-andriy.shevchenko@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
c26137d3a3
commit
9891b52ba1
|
|
@ -131,6 +131,13 @@ static int regcache_hw_init(struct regmap *map, int count)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void regcache_hw_exit(struct regmap *map)
|
||||
{
|
||||
kfree(map->reg_defaults);
|
||||
if (map->cache_free)
|
||||
kfree(map->reg_defaults_raw);
|
||||
}
|
||||
|
||||
int regcache_init(struct regmap *map, const struct regmap_config *config)
|
||||
{
|
||||
int count = 0;
|
||||
|
|
@ -245,9 +252,7 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
|
|||
map->unlock(map->lock_arg);
|
||||
}
|
||||
err_free:
|
||||
kfree(map->reg_defaults);
|
||||
if (map->cache_free)
|
||||
kfree(map->reg_defaults_raw);
|
||||
regcache_hw_exit(map);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -259,9 +264,7 @@ void regcache_exit(struct regmap *map)
|
|||
|
||||
BUG_ON(!map->cache_ops);
|
||||
|
||||
kfree(map->reg_defaults);
|
||||
if (map->cache_free)
|
||||
kfree(map->reg_defaults_raw);
|
||||
regcache_hw_exit(map);
|
||||
|
||||
if (map->cache_ops->exit) {
|
||||
dev_dbg(map->dev, "Destroying %s cache\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user