[OpenWrt-Devel] [PATCH] kernel: gpio: pca953x: backport gpio input fix

Pushpal Sidhu psidhu at gateworks.com
Wed Oct 8 20:51:23 EDT 2014


This fix is for anyone on 3.10 using the pca953x driver. A regression
was introduced when this driver was converted to using 8-bit
reads/writes the bitmask in pca953x_gpio_get_value wasn't adjusted with
the modulus BANK_SZ and consequently looks at the wrong bits in the
input register.

This backports the following commit from the mainline linux kernel:
40a625daa88653d7942dc85483f6f289cd687cb7

Signed-off-by: Pushpal Sidhu <psidhu at gateworks.com>
---
 .../350-gpio-pca953x-fix_gpio_input_on_gpio_offsets.patch   | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 target/linux/generic/patches-3.10/350-gpio-pca953x-fix_gpio_input_on_gpio_offsets.patch

diff --git a/target/linux/generic/patches-3.10/350-gpio-pca953x-fix_gpio_input_on_gpio_offsets.patch b/target/linux/generic/patches-3.10/350-gpio-pca953x-fix_gpio_input_on_gpio_offsets.patch
new file mode 100644
index 0000000..654fccf
--- /dev/null
+++ b/target/linux/generic/patches-3.10/350-gpio-pca953x-fix_gpio_input_on_gpio_offsets.patch
@@ -0,0 +1,13 @@
+Index: linux-3.10.49/drivers/gpio/gpio-pca953x.c
+===================================================================
+--- linux-3.10.49.orig/drivers/gpio/gpio-pca953x.c	2014-07-17 15:58:15.000000000 -0700
++++ linux-3.10.49/drivers/gpio/gpio-pca953x.c	2014-10-08 14:49:46.974913692 -0700
+@@ -308,7 +308,7 @@
+ 		return 0;
+ 	}
+ 
+-	return (reg_val & (1u << off)) ? 1 : 0;
++	return (reg_val & (1u << (off % BANK_SZ))) ? 1 : 0;
+ }
+ 
+ static void pca953x_gpio_set_value(struct gpio_chip *gc, unsigned off, int val)
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list