aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2013-02-02 11:29:25 -0500
committerGrant Likely <grant.likely@secretlab.ca>2013-02-09 04:22:21 -0500
commit65493e3ac429623df021e0859d97691f4b42615a (patch)
treea4e4568cde79ce00d80c5c1b6f4f74d59d1c2562
parent1a989d0f1de8f5a150b35e1e8181cc1abc139162 (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.c7
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