aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
diff options
context:
space:
mode:
authorMathias Kresin <dev@kresin.me>2017-03-21 23:21:57 +0100
committerMathias Kresin <dev@kresin.me>2017-04-08 14:30:00 +0200
commit192f0a3db8598fc6faa47788d0152bda54c5109a (patch)
treed77563c30e5f2dd5158c9db515ffcc0dcaab529b /package/kernel
parentaf9afa2811f0cfb373071b27a03affd77f9e00eb (diff)
downloadupstream-192f0a3db8598fc6faa47788d0152bda54c5109a.tar.gz
upstream-192f0a3db8598fc6faa47788d0152bda54c5109a.tar.bz2
upstream-192f0a3db8598fc6faa47788d0152bda54c5109a.zip
ath9k: unset the default LED pin if used by platform leds
Unset the default LED gpio pin if the same gpio pin is used by a LED defined via platform LED. This prevents that the default led trigger gets assigned to this LED and the GPIO value gets changed on wifi up/down in case the led is not used for signaling the wifi state. Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch21
-rw-r--r--package/kernel/mac80211/patches/546-ath9k_platform_led_name.patch12
-rw-r--r--package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch12
-rw-r--r--package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch13
4 files changed, 27 insertions, 31 deletions
diff --git a/package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch b/package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch
index 35d8e8bd42..8ed7ad8a09 100644
--- a/package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch
+++ b/package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch
@@ -56,16 +56,21 @@
INIT_LIST_HEAD(&sc->leds);
-@@ -144,6 +165,12 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -134,6 +155,17 @@ void ath_init_leds(struct ath_softc *sc)
- ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger,
- !sc->sc_ah->config.led_active_high);
+ ath_fill_led_pin(sc);
+
++ if (pdata && pdata->leds && pdata->num_leds)
++ for (i = 0; i < pdata->num_leds; i++) {
++ if (pdata->leds[i].gpio == sc->sc_ah->led_pin)
++ sc->sc_ah->led_pin = -1;
++
++ ath_create_platform_led(sc, &pdata->leds[i]);
++ }
+
-+ if (!pdata)
++ if (sc->sc_ah->led_pin < 0)
+ return;
+
-+ for (i = 0; i < pdata->num_leds; i++)
-+ ath_create_platform_led(sc, &pdata->leds[i]);
- }
- #endif
+ snprintf(led_name, sizeof(led_name), "ath9k-%s",
+ wiphy_name(sc->hw->wiphy));
diff --git a/package/kernel/mac80211/patches/546-ath9k_platform_led_name.patch b/package/kernel/mac80211/patches/546-ath9k_platform_led_name.patch
index ced72c6c69..ddb3fe60e8 100644
--- a/package/kernel/mac80211/patches/546-ath9k_platform_led_name.patch
+++ b/package/kernel/mac80211/patches/546-ath9k_platform_led_name.patch
@@ -7,15 +7,15 @@ Enable platform-supplied WLAN LED name for ath9k device. It replaces generic
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
---
- drivers/net/wireless/ath/ath9k/gpio.c | 10 +++++++---
- include/linux/ath9k_platform.h | 1 +
- 2 files changed, 8 insertions(+), 3 deletions(-)
+ drivers/net/wireless/ath/ath9k/gpio.c | 7 +++++--
+ include/linux/ath9k_platform.h | 1 +
+ 2 files changed, 6 insertions(+), 2 deletions(-)
--- a/drivers/net/wireless/ath/ath9k/gpio.c
+++ b/drivers/net/wireless/ath/ath9k/gpio.c
-@@ -155,8 +155,11 @@ void ath_init_leds(struct ath_softc *sc)
-
- ath_fill_led_pin(sc);
+@@ -166,8 +166,11 @@ void ath_init_leds(struct ath_softc *sc)
+ if (sc->sc_ah->led_pin < 0)
+ return;
- snprintf(led_name, sizeof(led_name), "ath9k-%s",
- wiphy_name(sc->hw->wiphy));
diff --git a/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch b/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch
index d4269282d9..4e28abbc35 100644
--- a/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch
+++ b/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch
@@ -221,12 +221,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ ath9k_register_gpio_chip(sc);
+
- if (pdata && pdata->led_name)
- strncpy(led_name, pdata->led_name, sizeof(led_name));
- else
-@@ -178,6 +314,7 @@ void ath_init_leds(struct ath_softc *sc)
- for (i = 0; i < pdata->num_leds; i++)
- ath_create_platform_led(sc, &pdata->leds[i]);
+ if (pdata && pdata->leds && pdata->num_leds)
+ for (i = 0; i < pdata->num_leds; i++) {
+ if (pdata->leds[i].gpio == sc->sc_ah->led_pin)
+@@ -183,6 +319,7 @@ void ath_init_leds(struct ath_softc *sc)
+ ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger,
+ !sc->sc_ah->config.led_active_high);
}
+
#endif
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 f40bac93c3..8aefcf4d07 100644
--- a/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch
+++ b/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch
@@ -123,17 +123,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ath9k_register_gpio_chip(sc);
+ ath9k_init_buttons(sc);
- if (pdata && pdata->led_name)
- strncpy(led_name, pdata->led_name, sizeof(led_name));
-@@ -308,7 +378,7 @@ void ath_init_leds(struct ath_softc *sc)
- ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger,
- !sc->sc_ah->config.led_active_high);
-
-- if (!pdata)
-+ if (!pdata || !pdata->leds || !pdata->num_leds)
- return;
-
- for (i = 0; i < pdata->num_leds; i++)
+ if (pdata && pdata->leds && pdata->num_leds)
+ for (i = 0; i < pdata->num_leds; i++) {
--- a/include/linux/ath9k_platform.h
+++ b/include/linux/ath9k_platform.h
@@ -50,6 +50,10 @@ struct ath9k_platform_data {