S3C24XX: GPIO: Fix pin range check in s3c_gpiolib_getchip
authorLars-Peter Clausen <lars@metafoo.de>
Tue, 21 Jul 2009 22:33:06 +0000 (00:33 +0200)
committerBen Dooks <ben-linux@fluff.org>
Wed, 29 Jul 2009 22:47:14 +0000 (23:47 +0100)
In the s3c_gpiolib_getchip implementation for s3c24xx the check whether a pin is
in the gpio banks range is reversed. Thus the function returns NULL for valid
pins and the gpio chip if its not valid.

As a result gpio states are not saved/restored properly during suspend/resume.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c2410/include/mach/gpio-core.h

index 8fe1920..f8b879a 100644 (file)
@@ -28,7 +28,7 @@ static inline struct s3c_gpio_chip *s3c_gpiolib_getchip(unsigned int pin)
                return NULL;
 
        chip = &s3c24xx_gpios[pin/32];
-       return (S3C2410_GPIO_OFFSET(pin) > chip->chip.ngpio) ? chip : NULL;
+       return (S3C2410_GPIO_OFFSET(pin) < chip->chip.ngpio) ? chip : NULL;
 }
 
 #endif /* __ASM_ARCH_GPIO_CORE_H */