]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regmap: cache: set max_register with reg_stride
authorJeongtae Park <jtp.park@samsung.com>
Mon, 25 Apr 2022 11:46:11 +0000 (20:46 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 25 Apr 2022 13:00:44 +0000 (14:00 +0100)
Current logic does not consider multi-stride cases,
the max_register have to calculate with reg_stride
because it is a kind of address range.

Signed-off-by: Jeongtae Park <jtp.park@samsung.com>
Link: https://lore.kernel.org/r/20220425114613.15934-1-jtp.park@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regcache.c

index f2469d3435ca384db5f014c031ca3bd2e4687dd9..d0f5bc8279783adcab51bd42df7775000e1dad67 100644 (file)
@@ -183,8 +183,8 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
                        return 0;
        }
 
-       if (!map->max_register)
-               map->max_register = map->num_reg_defaults_raw;
+       if (!map->max_register && map->num_reg_defaults_raw)
+               map->max_register = (map->num_reg_defaults_raw  - 1) * map->reg_stride;
 
        if (map->cache_ops->init) {
                dev_dbg(map->dev, "Initializing %s cache\n",