diff options
author | Alexandre Courbot <acourbot@nvidia.com> | 2013-02-02 11:29:25 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2013-02-09 04:22:21 -0500 |
commit | 65493e3ac429623df021e0859d97691f4b42615a (patch) | |
tree | a4e4568cde79ce00d80c5c1b6f4f74d59d1c2562 | |
parent | 1a989d0f1de8f5a150b35e1e8181cc1abc139162 (diff) |
gpiolib: use gpio_chips list in gpiolib_sysfs_init
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>
-rw-r--r-- | drivers/gpio/gpiolib.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 453ac77771ca..c1d8f7bdcd8f 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -974,7 +974,7 @@ static int __init gpiolib_sysfs_init(void) | |||
974 | { | 974 | { |
975 | int status; | 975 | int status; |
976 | unsigned long flags; | 976 | unsigned long flags; |
977 | unsigned gpio; | 977 | struct gpio_chip *chip; |
978 | 978 | ||
979 | status = class_register(&gpio_class); | 979 | status = class_register(&gpio_class); |
980 | if (status < 0) | 980 | if (status < 0) |
@@ -987,10 +987,7 @@ static int __init gpiolib_sysfs_init(void) | |||
987 | * registered, and so arch_initcall() can always gpio_export(). | 987 | * registered, and so arch_initcall() can always gpio_export(). |
988 | */ | 988 | */ |
989 | spin_lock_irqsave(&gpio_lock, flags); | 989 | spin_lock_irqsave(&gpio_lock, flags); |
990 | for (gpio = 0; gpio < ARCH_NR_GPIOS; gpio++) { | 990 | list_for_each_entry(chip, &gpio_chips, list) { |
991 | struct gpio_chip *chip; | ||
992 | |||
993 | chip = gpio_desc[gpio].chip; | ||
994 | if (!chip || chip->exported) | 991 | if (!chip || chip->exported) |
995 | continue; | 992 | continue; |
996 | 993 | ||