diff options
author | Cristian Ciocaltea <cristian.ciocaltea@collabora.com> | 2023-04-06 21:41:56 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-04-11 14:24:55 +0200 |
commit | 6bb18339c6b54e0241344280fe4d14909db9356c (patch) | |
tree | e313398aadf859cf6d6f758d81a0df7ab05e4295 /drivers/regulator | |
parent | regulator: fan53555: Make use of the bit macros (diff) | |
download | linux-6bb18339c6b54e0241344280fe4d14909db9356c.tar.xz linux-6bb18339c6b54e0241344280fe4d14909db9356c.zip |
regulator: fan53555: Improve vsel_mask computation
In preparation for introducing support for additional regulators which
do not use the maximum number of voltage selectors available for a given
mask, improve the mask computation formula by using fls().
Note fls() requires the bitops header, hence include it explicitly and
drop bits.h which is already pulled by bitops.h.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20230406194158.963352-7-cristian.ciocaltea@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/fan53555.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/regulator/fan53555.c b/drivers/regulator/fan53555.c index 16a0f11601f8..997cecd77971 100644 --- a/drivers/regulator/fan53555.c +++ b/drivers/regulator/fan53555.c @@ -8,7 +8,7 @@ // Copyright (c) 2012 Marvell Technology Ltd. // Yunfan Zhang <yfzhang@marvell.com> -#include <linux/bits.h> +#include <linux/bitops.h> #include <linux/err.h> #include <linux/i2c.h> #include <linux/module.h> @@ -486,7 +486,7 @@ static int fan53555_regulator_register(struct fan53555_device_info *di, rdesc->min_uV = di->vsel_min; rdesc->uV_step = di->vsel_step; rdesc->vsel_reg = di->vol_reg; - rdesc->vsel_mask = di->vsel_count - 1; + rdesc->vsel_mask = BIT(fls(di->vsel_count - 1)) - 1; rdesc->ramp_reg = di->slew_reg; rdesc->ramp_mask = di->slew_mask; rdesc->ramp_delay_table = di->ramp_delay_table; |