]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpiolib: unify two loops initializing GPIO descriptors
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 4 Oct 2024 14:43:23 +0000 (16:43 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 8 Oct 2024 08:21:46 +0000 (10:21 +0200)
We currently iterate over the descriptors owned by the GPIO device we're
adding twice with the first loop just setting the gdev pointer. It's not
used anywhere between this and the second loop so just drop the first
one and move the assignment to the second.

Reviewed-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20241004-gpio-notify-in-kernel-events-v1-2-8ac29e1df4fe@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpiolib.c

index 39677a8416dcba6a93ea1a487f3d1e75c2f5f0a2..0d1e10654d4c6583eb09dc16516e3734723a8b5e 100644 (file)
@@ -1026,9 +1026,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
                }
        }
 
-       for (desc_index = 0; desc_index < gc->ngpio; desc_index++)
-               gdev->descs[desc_index].gdev = gdev;
-
        BLOCKING_INIT_NOTIFIER_HEAD(&gdev->line_state_notifier);
        BLOCKING_INIT_NOTIFIER_HEAD(&gdev->device_notifier);
 
@@ -1058,6 +1055,8 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
        for (desc_index = 0; desc_index < gc->ngpio; desc_index++) {
                struct gpio_desc *desc = &gdev->descs[desc_index];
 
+               desc->gdev = gdev;
+
                if (gc->get_direction && gpiochip_line_is_valid(gc, desc_index)) {
                        assign_bit(FLAG_IS_OUT,
                                   &desc->flags, !gc->get_direction(gc, desc_index));