ath9k: ignore led_pin if ath9k GPIO controller is used with DT
authorMathias Kresin <dev@kresin.me>
Wed, 22 Mar 2017 07:04:16 +0000 (08:04 +0100)
committerMathias Kresin <dev@kresin.me>
Sat, 8 Apr 2017 12:30:00 +0000 (14:30 +0200)
Don't setup the default led pin if the ath9k GPIO controller is used
via device tree to prevent collision. In case any of the pins exposed
by the ath9k is used, the phyNtpt trigger needs to be set in userspace.

Signed-off-by: Mathias Kresin <dev@kresin.me>
package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch
package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch

index 10047a7cfda8e0c1b8be231730f822d0e6a27081..86917eb6eeb18c9fb56d1cb7ec565ad1aef5c277 100644 (file)
@@ -221,21 +221,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        char led_name[32];
        const char *trigger;
        int i;
-@@ -156,6 +291,13 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -156,6 +291,15 @@ void ath_init_leds(struct ath_softc *sc)
        if (AR_SREV_9100(sc->sc_ah))
                return;
  
 +      if (!np)
 +              ath9k_register_gpio_chip(sc);
 +
-+      /* setup gpio controller only if requested */
-+      if (of_property_read_bool(np, "gpio-controller"))
++      /* setup gpio controller only if requested and skip the led_pin setup */
++      if (of_property_read_bool(np, "gpio-controller")) {
 +              ath9k_register_gpio_chip(sc);
++              return;
++      }
 +
        ath_fill_led_pin(sc);
  
        if (pdata && pdata->leds && pdata->num_leds)
-@@ -183,6 +325,7 @@ void ath_init_leds(struct ath_softc *sc)
+@@ -183,6 +327,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);
  }
index 1d1efe5384af3d867faa4f2132d4fdc14a0f0ed0..4e165dde99938d3436b6497b8c2b08491c74f601 100644 (file)
@@ -117,8 +117,8 @@ 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
-@@ -299,6 +368,7 @@ void ath_init_leds(struct ath_softc *sc)
-               ath9k_register_gpio_chip(sc);
+@@ -301,6 +370,7 @@ void ath_init_leds(struct ath_softc *sc)
+       }
  
        ath_fill_led_pin(sc);
 +      ath9k_init_buttons(sc);