diff options
author | Mathias Kresin <dev@kresin.me> | 2017-11-03 07:25:21 +0100 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2017-11-04 09:50:13 +0100 |
commit | 8d3857a34748126453e0d22d5243cf3940e2139f (patch) | |
tree | e5a4fe072b723fbd2f99a18bbd6b4f7c282ff99f /package/kernel/mac80211 | |
parent | c4c72a9a42e07bed8f9e9eb214c0debfb5d7ab90 (diff) | |
download | upstream-8d3857a34748126453e0d22d5243cf3940e2139f.tar.gz upstream-8d3857a34748126453e0d22d5243cf3940e2139f.tar.bz2 upstream-8d3857a34748126453e0d22d5243cf3940e2139f.zip |
ath9k: unset the default LED pin if used by platform buttons
Unset the default LED gpio pin if the same gpio pin is used by a button
defined via platform button. It prevents the change of the GPIO value
on wireless up/down or wireless traffic.
Fixes: FS#1129
Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'package/kernel/mac80211')
-rw-r--r-- | package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch b/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch index f3fead0a1a..e86e3e38bd 100644 --- a/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch +++ b/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch @@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #ifdef CPTCFG_MAC80211_LEDS -@@ -129,6 +131,64 @@ static void ath9k_unregister_gpio_chip(s +@@ -129,6 +131,67 @@ static void ath9k_unregister_gpio_chip(s sc->gpiochip = NULL; } @@ -59,6 +59,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + return; + + for (i = 0; i < pdata->num_btns; i++) { ++ if (pdata->btns[i].gpio == sc->sc_ah->led_pin) ++ sc->sc_ah->led_pin = -1; ++ + ath9k_hw_gpio_request_in(sc->sc_ah, pdata->btns[i].gpio, + "ath9k-gpio"); + bt[i].gpio = sc->gpiochip->gchip.base + pdata->btns[i].gpio; @@ -94,7 +97,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #else /* CONFIG_GPIOLIB */ static inline void ath9k_register_gpio_chip(struct ath_softc *sc) -@@ -139,6 +199,14 @@ static inline void ath9k_unregister_gpio +@@ -139,6 +202,14 @@ static inline void ath9k_unregister_gpio { } @@ -109,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #endif /* CONFIG_GPIOLIB */ /********************************/ -@@ -262,6 +330,7 @@ void ath_deinit_leds(struct ath_softc *s +@@ -262,6 +333,7 @@ void ath_deinit_leds(struct ath_softc *s { struct ath_led *led; @@ -117,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> while (!list_empty(&sc->leds)) { led = list_first_entry(&sc->leds, struct ath_led, list); #ifdef CONFIG_GPIOLIB -@@ -301,6 +370,7 @@ void ath_init_leds(struct ath_softc *sc) +@@ -301,6 +373,7 @@ void ath_init_leds(struct ath_softc *sc) } ath_fill_led_pin(sc); |