brcm47xx: fix button inversion for Asus WL-500W
authorMirko Parthey <mirko.parthey@web.de>
Tue, 14 Feb 2017 21:38:17 +0000 (22:38 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Wed, 15 Feb 2017 23:06:22 +0000 (00:06 +0100)
The Asus WL-500W buttons are active high,
but the software treats them as active low.
Fix the inverted logic.

Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
target/linux/brcm47xx/patches-4.4/130-MIPS-bcm47xx-Fix-button-inversion-for-Asus-WL-500W.patch [new file with mode: 0644]

diff --git a/target/linux/brcm47xx/patches-4.4/130-MIPS-bcm47xx-Fix-button-inversion-for-Asus-WL-500W.patch b/target/linux/brcm47xx/patches-4.4/130-MIPS-bcm47xx-Fix-button-inversion-for-Asus-WL-500W.patch
new file mode 100644 (file)
index 0000000..bae19ff
--- /dev/null
@@ -0,0 +1,38 @@
+From: Mirko Parthey <mirko.parthey@web.de>
+Subject: [PATCH] MIPS: bcm47xx: Fix button inversion for Asus WL-500W
+
+The Asus WL-500W buttons are active high,
+but the software treats them as active low.
+Fix the inverted logic.
+
+Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
+---
+ arch/mips/bcm47xx/buttons.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/arch/mips/bcm47xx/buttons.c
++++ b/arch/mips/bcm47xx/buttons.c
+@@ -17,6 +17,12 @@
+               .active_low     = 1,                                    \
+       }
++#define BCM47XX_GPIO_KEY_H(_gpio, _code)                              \
++      {                                                               \
++              .code           = _code,                                \
++              .gpio           = _gpio,                                \
++      }
++
+ /* Asus */
+ static const struct gpio_keys_button
+@@ -85,8 +91,8 @@ bcm47xx_buttons_asus_wl500gpv2[] __initc
+ static const struct gpio_keys_button
+ bcm47xx_buttons_asus_wl500w[] __initconst = {
+-      BCM47XX_GPIO_KEY(6, KEY_RESTART),
+-      BCM47XX_GPIO_KEY(7, KEY_WPS_BUTTON),
++      BCM47XX_GPIO_KEY_H(6, KEY_RESTART),
++      BCM47XX_GPIO_KEY_H(7, KEY_WPS_BUTTON),
+ };
+ static const struct gpio_keys_button