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>
This commit is contained in:
Alexandre Courbot 2013-02-03 01:29:25 +09:00 committed by Grant Likely
parent 1a989d0f1d
commit 65493e3ac4

View file

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