gpiolib: use gpio_chips list in gpiolib_sysfs_init
authorAlexandre Courbot <acourbot@nvidia.com>
Sat, 2 Feb 2013 16:29:25 +0000 (01:29 +0900)
committerGrant Likely <grant.likely@secretlab.ca>
Sat, 9 Feb 2013 09:22:21 +0000 (09:22 +0000)
Use the small list of GPIO chips instead of parsing the whole GPIO
number space.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/gpio/gpiolib.c

index 453ac77..c1d8f7b 100644 (file)
@@ -974,7 +974,7 @@ static int __init gpiolib_sysfs_init(void)
 {
        int             status;
        unsigned long   flags;
-       unsigned        gpio;
+       struct gpio_chip *chip;
 
        status = class_register(&gpio_class);
        if (status < 0)
@@ -987,10 +987,7 @@ static int __init gpiolib_sysfs_init(void)
         * registered, and so arch_initcall() can always gpio_export().
         */
        spin_lock_irqsave(&gpio_lock, flags);
-       for (gpio = 0; gpio < ARCH_NR_GPIOS; gpio++) {
-               struct gpio_chip        *chip;
-
-               chip = gpio_desc[gpio].chip;
+       list_for_each_entry(chip, &gpio_chips, list) {
                if (!chip || chip->exported)
                        continue;