mac80211: update to wireless-testing 2016-01-10
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 530-ath9k_extra_leds.patch
index 5e0dffdc60520b694bdd6a085c1766fc1da52ba9..66662f4c5aa41c6ab9d56124b7bd41a1d4d2371b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -563,6 +563,9 @@ static inline int ath9k_dump_btcoex(stru
+@@ -814,6 +814,9 @@ static inline int ath9k_dump_btcoex(stru
  void ath_init_leds(struct ath_softc *sc);
  void ath_deinit_leds(struct ath_softc *sc);
  void ath_fill_led_pin(struct ath_softc *sc);
@@ -10,9 +10,9 @@
  #else
  static inline void ath_init_leds(struct ath_softc *sc)
  {
-@@ -710,6 +713,13 @@ enum sc_op_flags {
- #define PS_BEACON_SYNC            BIT(4)
- #define PS_WAIT_FOR_ANI           BIT(5)
+@@ -953,6 +956,13 @@ void ath_ant_comb_scan(struct ath_softc
+ #define ATH9K_NUM_CHANCTX  2 /* supports 2 operating channels */
  
 +struct ath_led {
 +      struct list_head list;
@@ -24,8 +24,8 @@
  struct ath_softc {
        struct ieee80211_hw *hw;
        struct device *dev;
-@@ -751,9 +761,8 @@ struct ath_softc {
-       struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS];
+@@ -1005,9 +1015,8 @@ struct ath_softc {
+       spinlock_t chan_lock;
  
  #ifdef CPTCFG_MAC80211_LEDS
 -      bool led_registered;
 +      struct list_head leds;
  #endif
  
-       struct ath9k_hw_cal_data caldata;
+ #ifdef CPTCFG_ATH9K_DEBUGFS
 --- a/drivers/net/wireless/ath/ath9k/gpio.c
 +++ b/drivers/net/wireless/ath/ath9k/gpio.c
-@@ -24,40 +24,102 @@
+@@ -24,45 +24,102 @@
  static void ath_led_brightness(struct led_classdev *led_cdev,
                               enum led_brightness brightness)
  {
 -      struct ath_softc *sc = container_of(led_cdev, struct ath_softc, led_cdev);
--      ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, (brightness == LED_OFF));
+-      u32 val = (brightness == LED_OFF);
 +      struct ath_led *led = container_of(led_cdev, struct ath_led, cdev);
 +      struct ath_softc *sc = led->sc;
-+
+-      if (sc->sc_ah->config.led_active_high)
+-              val = !val;
 +      ath9k_ps_wakeup(sc);
 +      ath9k_hw_set_gpio(sc->sc_ah, led->gpio->gpio,
 +                        (brightness != LED_OFF) ^ led->gpio->active_low);
@@ -61,7 +63,8 @@
 +      led->cdev.name = gpio->name;
 +      led->cdev.default_trigger = gpio->default_trigger;
 +      led->cdev.brightness_set = ath_led_brightness;
-+
+-      ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, val);
 +      ret = led_classdev_register(wiphy_dev(sc->hw->wiphy), &led->cdev);
 +      if (ret < 0)
 +              return ret;
        if (AR_SREV_9100(sc->sc_ah))
                return;
  
--      if (!led_blink)
+-      if (!ath9k_led_blink)
 -              sc->led_cdev.default_trigger =
 -                      ieee80211_get_radio_led_name(sc->hw);
 -
 -      ret = led_classdev_register(wiphy_dev(sc->hw->wiphy), &sc->led_cdev);
 -      if (ret < 0)
 -              return;
-+      if (led_blink)
++      if (ath9k_led_blink)
 +              trigger = sc->led_default_trigger;
 +      else
 +              trigger = ieee80211_get_radio_led_name(sc->hw);
  
 -      sc->led_registered = true;
-+      ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger, 1);
++      ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger, !sc->sc_ah->config.led_active_high);
  }
  
  void ath_fill_led_pin(struct ath_softc *sc)
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -1018,7 +1018,7 @@ int ath9k_init_device(u16 devid, struct 
+@@ -951,7 +951,7 @@ int ath9k_init_device(u16 devid, struct
  
  #ifdef CPTCFG_MAC80211_LEDS
        /* must be initialized before ieee80211_register_hw */
  #endif
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1569,6 +1569,61 @@ static const struct file_operations fops
+@@ -1393,6 +1393,61 @@ static const struct file_operations fops
        .llseek = default_llseek,
  };
  
  
  int ath9k_init_debug(struct ath_hw *ah)
  {
-@@ -1593,6 +1648,10 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1417,6 +1472,10 @@ int ath9k_init_debug(struct ath_hw *ah)
                            &fops_eeprom);
        debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
                            sc, &fops_chanbw);
 +      debugfs_create_file("gpio_led", S_IWUSR,
 +                         sc->debug.debugfs_phy, sc, &fops_gpio_led);
 +#endif
-       debugfs_create_file("dma", S_IRUSR, sc->debug.debugfs_phy, sc,
-                           &fops_dma);
-       debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc,
+       debugfs_create_devm_seqfile(sc->dev, "dma", sc->debug.debugfs_phy,
+                                   read_file_dma);
+       debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy,