]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpiolib: remove unneeded WARN_ON() from gpiochip_set_multiple()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 27 Feb 2025 15:28:31 +0000 (16:28 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 3 Mar 2025 08:34:08 +0000 (09:34 +0100)
GPIO drivers are not required to support set_multiple() - the core will
fallback to calling set() for each line if it's missing. Remove the
offending check from gpiochip_set_multiple().

Fixes: 98ce1eb1fd87 ("gpiolib: introduce gpio_chip setters that return values")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Closes: https://lore.kernel.org/all/ab3e42c0-70fa-48e0-ac93-ecbffef63507@samsung.com/
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250227152831.59784-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpiolib.c

index 212269f2d9a2e7598253a0c0e035687ec69441c3..ec2217a30db37d92d53edf3428db2ea92074b616 100644 (file)
@@ -3604,9 +3604,6 @@ static int gpiochip_set_multiple(struct gpio_chip *gc,
 
        lockdep_assert_held(&gc->gpiodev->srcu);
 
-       if (WARN_ON(unlikely(!gc->set_multiple && !gc->set_multiple_rv)))
-               return -EOPNOTSUPP;
-
        if (gc->set_multiple_rv) {
                ret = gc->set_multiple_rv(gc, mask, bits);
                if (ret > 0)