ath9k: fix issues with external reset on AR913x
[openwrt/staging/blogic.git] / package / kernel / mac80211 / patches / 544-ath9k-ar933x-usb-hang-workaround.patch
index 68d121a4d16099eb51040ae58c593e23cc32b130..200a3a28f692c553cf44eaf5f3c4f6593adbaf6a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -215,6 +215,19 @@ void ath9k_hw_get_channel_centers(struct
+@@ -246,6 +246,19 @@ void ath9k_hw_get_channel_centers(struct
                centers->synth_center + (extoff * HT40_CHANNEL_CENTER_SHIFT);
  }
  
@@ -20,9 +20,9 @@
  /******************/
  /* Chip Revisions */
  /******************/
-@@ -1338,6 +1351,9 @@ static bool ath9k_hw_set_reset(struct at
-       if (AR_SREV_9100(ah))
+@@ -1414,6 +1427,9 @@ static bool ath9k_hw_set_reset(struct at
                udelay(50);
+       }
  
 +      if (AR_SREV_9330(ah) || AR_SREV_9340(ah))
 +              ath9k_hw_disable_pll_lock_detect(ah);
@@ -30,7 +30,7 @@
        return true;
  }
  
-@@ -1437,6 +1453,9 @@ static bool ath9k_hw_chip_reset(struct a
+@@ -1513,6 +1529,9 @@ static bool ath9k_hw_chip_reset(struct a
                ar9003_hw_internal_regulator_apply(ah);
        ath9k_hw_init_pll(ah, chan);
  
@@ -40,7 +40,7 @@
        return true;
  }
  
-@@ -1731,8 +1750,14 @@ static int ath9k_hw_do_fastcc(struct ath
+@@ -1816,8 +1835,14 @@ static int ath9k_hw_do_fastcc(struct ath
        if (AR_SREV_9271(ah))
                ar9002_hw_load_ani_reg(ah, chan);
  
@@ -55,7 +55,7 @@
        return -EINVAL;
  }
  
-@@ -1982,6 +2007,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -2071,6 +2096,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
                ath9k_hw_set_radar_params(ah);
        }