]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: resolver: ad2s1210: use bitmap_write
authorDavid Lechner <dlechner@baylibre.com>
Mon, 10 Feb 2025 22:33:36 +0000 (16:33 -0600)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 22 Feb 2025 11:42:50 +0000 (11:42 +0000)
Replace bitmap array access with bitmap_write.

Accessing the bitmap array directly is not recommended and now there is
a helper function that can be used.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250210-gpio-set-array-helper-v3-10-d6a673674da8@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/resolver/ad2s1210.c

index 7f18df790157f1e411fb70de193a49f0677c999f..ab860cedecd14d5f085de38257406348cf93f2bc 100644 (file)
@@ -46,6 +46,7 @@
  */
 
 #include <linux/bitfield.h>
+#include <linux/bitmap.h>
 #include <linux/bits.h>
 #include <linux/cleanup.h>
 #include <linux/clk.h>
@@ -175,12 +176,12 @@ struct ad2s1210_state {
 static int ad2s1210_set_mode(struct ad2s1210_state *st, enum ad2s1210_mode mode)
 {
        struct gpio_descs *gpios = st->mode_gpios;
-       DECLARE_BITMAP(bitmap, 2);
+       DECLARE_BITMAP(bitmap, 2) = { };
 
        if (!gpios)
                return mode == st->fixed_mode ? 0 : -EOPNOTSUPP;
 
-       bitmap[0] = mode;
+       bitmap_write(bitmap, mode, 0, 2);
 
        return gpiod_multi_set_value_cansleep(gpios, bitmap);
 }
@@ -1426,7 +1427,7 @@ static int ad2s1210_setup_gpios(struct ad2s1210_state *st)
        struct device *dev = &st->sdev->dev;
        struct gpio_descs *resolution_gpios;
        struct gpio_desc *reset_gpio;
-       DECLARE_BITMAP(bitmap, 2);
+       DECLARE_BITMAP(bitmap, 2) = { };
        int ret;
 
        /* should not be sampling on startup */
@@ -1470,7 +1471,7 @@ static int ad2s1210_setup_gpios(struct ad2s1210_state *st)
                        return dev_err_probe(dev, -EINVAL,
                                      "requires exactly 2 resolution-gpios\n");
 
-               bitmap[0] = st->resolution;
+               bitmap_write(bitmap, st->resolution, 0, 2);
 
                ret = gpiod_multi_set_value_cansleep(resolution_gpios, bitmap);
                if (ret < 0)