[PATCH/RFC 08/17] iio: humidity: hts221: Use bitfield helpers
From: Geert Uytterhoeven
Date: Mon Nov 22 2021 - 10:56:48 EST
Use the field_prep() helper, instead of open-coding the same operation.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
---
Compile-tested only.
Marked RFC, as this depends on [PATCH 01/17], but follows a different
path to upstream.
---
drivers/iio/humidity/hts221_core.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts221_core.c
index 6a39615b696114cd..749aedc469ede5c1 100644
--- a/drivers/iio/humidity/hts221_core.c
+++ b/drivers/iio/humidity/hts221_core.c
@@ -7,6 +7,7 @@
* Lorenzo Bianconi <lorenzo.bianconi@xxxxxx>
*/
+#include <linux/bitfield.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
@@ -171,7 +172,7 @@ static int hts221_update_avg(struct hts221_hw *hw,
u16 val)
{
const struct hts221_avg *avg = &hts221_avg_list[type];
- int i, err, data;
+ int i, err;
for (i = 0; i < HTS221_AVG_DEPTH; i++)
if (avg->avg_avl[i] == val)
@@ -180,9 +181,8 @@ static int hts221_update_avg(struct hts221_hw *hw,
if (i == HTS221_AVG_DEPTH)
return -EINVAL;
- data = ((i << __ffs(avg->mask)) & avg->mask);
- err = regmap_update_bits(hw->regmap, avg->addr,
- avg->mask, data);
+ err = regmap_update_bits(hw->regmap, avg->addr, avg->mask,
+ field_prep(avg->mask, i));
if (err < 0)
return err;
--
2.25.1