mac80211: update to wireless-testing 2015-03-09
[openwrt/svn-archive/archive.git] / package / kernel / mac80211 / patches / 542-ath9k_debugfs_diag.patch
index e1b6ff17e81369c070736da0f4b0a27dc321d24c..ed420c29dd27141b409c9341498b89a03ed1afe2 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1629,6 +1629,50 @@ static const struct file_operations fops
+@@ -1447,6 +1447,50 @@ static const struct file_operations fops
  #endif
  
  
  int ath9k_init_debug(struct ath_hw *ah)
  {
        struct ath_common *common = ath9k_hw_common(ah);
-@@ -1656,6 +1700,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1474,6 +1518,8 @@ int ath9k_init_debug(struct ath_hw *ah)
        debugfs_create_file("gpio_led", S_IWUSR,
                           sc->debug.debugfs_phy, sc, &fops_gpio_led);
  #endif
 +      debugfs_create_file("diag", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
 +                          sc, &fops_diag);
-       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,
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -482,6 +482,12 @@ enum {
+@@ -499,6 +499,12 @@ enum {
        ATH9K_RESET_COLD,
  };
  
@@ -75,7 +75,7 @@
  struct ath9k_hw_version {
        u32 magic;
        u16 devid;
-@@ -762,6 +768,8 @@ struct ath_hw {
+@@ -780,6 +786,8 @@ struct ath_hw {
        u32 rfkill_polarity;
        u32 ah_flags;
  
@@ -84,7 +84,7 @@
        bool reset_power_on;
        bool htc_reset_init;
  
-@@ -1013,6 +1021,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
+@@ -1040,6 +1048,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
  bool ath9k_hw_check_alive(struct ath_hw *ah);
  
  bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode);
@@ -94,9 +94,9 @@
  struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1735,6 +1735,20 @@ fail:
-       return -EINVAL;
+@@ -1771,6 +1771,20 @@ u32 ath9k_hw_get_tsf_offset(struct times
  }
+ EXPORT_SYMBOL(ath9k_hw_get_tsf_offset);
  
 +void ath9k_hw_update_diag(struct ath_hw *ah)
 +{
  int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
                   struct ath9k_hw_cal_data *caldata, bool fastcc)
  {
-@@ -1940,6 +1954,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -1977,6 +1991,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
                ar9003_hw_disable_phy_restart(ah);
  
        ath9k_hw_apply_gpio_override(ah);
                REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON);
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -602,6 +602,11 @@ irqreturn_t ath_isr(int irq, void *dev)
-       ath9k_debug_sync_cause(sc, sync_cause);
-       status &= ah->imask;    /* discard unasked-for bits */
+@@ -531,6 +531,11 @@ irqreturn_t ath_isr(int irq, void *dev)
+       if (test_bit(ATH_OP_HW_RESET, &common->op_flags))
+               return IRQ_HANDLED;
  
 +      if (test_bit(ATH_DIAG_TRIGGER_ERROR, &ah->diag)) {
 +              status |= ATH9K_INT_FATAL;