This regulator is on a slow i2c bus. Register accesses are very simple,
they all either enable/disable a regulator channel, or select a new
voltage level. Thus, reading registers from the device will always
return what was last written.
Therefore we can save a lot of time when reading registers by using a
regmap_cache. Since the register map is relatively large, but we only
ever access a few of them, we use an RBTREE cache.
Signed-off-by: Daniel Kurtz <[email protected]>
---
I used the wrong commit message subject in the first attempt.
Maybe this time someone will review it ;-).
---
drivers/regulator/mt6311-regulator.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/regulator/mt6311-regulator.c b/drivers/regulator/mt6311-regulator.c
index 02c4e5f..0495716 100644
--- a/drivers/regulator/mt6311-regulator.c
+++ b/drivers/regulator/mt6311-regulator.c
@@ -30,6 +30,7 @@ static const struct regmap_config mt6311_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.max_register = MT6311_FQMTR_CON4,
+ .cache_type = REGCACHE_RBTREE,
};
/* Default limits measured in millivolts and milliamps */
--
2.6.0.rc2.230.g3dd15c0
Thanks to the patch.
On Fri, 2015-12-18 at 15:11 +0800, Daniel Kurtz wrote:
> This regulator is on a slow i2c bus. Register accesses are very simple,
> they all either enable/disable a regulator channel, or select a new
> voltage level. Thus, reading registers from the device will always
> return what was last written.
>
> Therefore we can save a lot of time when reading registers by using a
> regmap_cache. Since the register map is relatively large, but we only
> ever access a few of them, we use an RBTREE cache.
>
> Signed-off-by: Daniel Kurtz <[email protected]>
Acked-by: Henry Chen <[email protected]>
> ---
> I used the wrong commit message subject in the first attempt.
> Maybe this time someone will review it ;-).
> ---
> drivers/regulator/mt6311-regulator.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/regulator/mt6311-regulator.c b/drivers/regulator/mt6311-regulator.c
> index 02c4e5f..0495716 100644
> --- a/drivers/regulator/mt6311-regulator.c
> +++ b/drivers/regulator/mt6311-regulator.c
> @@ -30,6 +30,7 @@ static const struct regmap_config mt6311_regmap_config = {
> .reg_bits = 8,
> .val_bits = 8,
> .max_register = MT6311_FQMTR_CON4,
> + .cache_type = REGCACHE_RBTREE,
> };
>
> /* Default limits measured in millivolts and milliamps */