diff options
| author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2025-10-31 09:03:19 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-10-31 12:01:54 +0000 |
| commit | 44c1a444b030647803d900e60f5a8af31a782f0e (patch) | |
| tree | d346894519e9867c98ced51491405ab8bd674d8e /drivers/base | |
| parent | 27fef3048fe95934f6f2f87341eb33ef6581a075 (diff) | |
regcache: flat: Split ->populate() from ->init()
Split ->populate() implementation from ->init() code.
This decoupling will help for the further changes.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251031080540.3970776-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/base')
| -rw-r--r-- | drivers/base/regmap/regcache-flat.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/base/regmap/regcache-flat.c b/drivers/base/regmap/regcache-flat.c index bacb7137092f..53cc59c84e2f 100644 --- a/drivers/base/regmap/regcache-flat.c +++ b/drivers/base/regmap/regcache-flat.c @@ -29,7 +29,6 @@ struct regcache_flat_data { static int regcache_flat_init(struct regmap *map) { - int i; unsigned int cache_size; struct regcache_flat_data *cache; @@ -47,14 +46,6 @@ static int regcache_flat_init(struct regmap *map) map->cache = cache; - for (i = 0; i < map->num_reg_defaults; i++) { - unsigned int reg = map->reg_defaults[i].reg; - unsigned int index = regcache_flat_get_index(map, reg); - - cache->data[index] = map->reg_defaults[i].def; - __set_bit(index, cache->valid); - } - return 0; err_free: @@ -75,6 +66,22 @@ static int regcache_flat_exit(struct regmap *map) return 0; } +static int regcache_flat_populate(struct regmap *map) +{ + struct regcache_flat_data *cache = map->cache; + unsigned int i; + + for (i = 0; i < map->num_reg_defaults; i++) { + unsigned int reg = map->reg_defaults[i].reg; + unsigned int index = regcache_flat_get_index(map, reg); + + cache->data[index] = map->reg_defaults[i].def; + __set_bit(index, cache->valid); + } + + return 0; +} + static int regcache_flat_read(struct regmap *map, unsigned int reg, unsigned int *value) { @@ -134,6 +141,7 @@ struct regcache_ops regcache_flat_ops = { .name = "flat", .init = regcache_flat_init, .exit = regcache_flat_exit, + .populate = regcache_flat_populate, .read = regcache_flat_read, .write = regcache_flat_write, }; @@ -143,6 +151,7 @@ struct regcache_ops regcache_flat_sparse_ops = { .name = "flat-sparse", .init = regcache_flat_init, .exit = regcache_flat_exit, + .populate = regcache_flat_populate, .read = regcache_flat_sparse_read, .write = regcache_flat_write, .drop = regcache_flat_drop, |