[s3c24xx] fix s3c_gpiolib_getchip. The comparison was the wrong way, causing all
[openwrt-10.03/.git] / target / linux / s3c24xx / patches-2.6.30 / 130-fix-s3c_gpiolib_getchip.patch
diff --git a/target/linux/s3c24xx/patches-2.6.30/130-fix-s3c_gpiolib_getchip.patch b/target/linux/s3c24xx/patches-2.6.30/130-fix-s3c_gpiolib_getchip.patch
new file mode 100644 (file)
index 0000000..9673001
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/arch/arm/mach-s3c2410/include/mach/gpio-core.h b/arch/arm/mach-s3c2410/include/mach/gpio-core.h
+index 8fe1920..f8b879a 100644
+--- a/arch/arm/mach-s3c2410/include/mach/gpio-core.h
++++ b/arch/arm/mach-s3c2410/include/mach/gpio-core.h
+@@ -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 */