summaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2025-10-31 09:03:19 +0100
committerMark Brown <broonie@kernel.org>2025-10-31 12:01:54 +0000
commit44c1a444b030647803d900e60f5a8af31a782f0e (patch)
treed346894519e9867c98ced51491405ab8bd674d8e /drivers/base
parent27fef3048fe95934f6f2f87341eb33ef6581a075 (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.c27
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,