ath9k: use external reset on AR91xx and QCA955x to improve stability
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 544-ath9k-ar933x-usb-hang-workaround.patch
index b6e7b739030fd02d543d3503643c1b37e0d945d5..b9c962e1b5d13338ab4f7ddf6f370dbffeda299a 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 */
  /******************/
-@@ -1351,6 +1364,9 @@ static bool ath9k_hw_set_reset(struct at
-       if (AR_SREV_9100(ah))
+@@ -1417,6 +1430,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;
  }
  
-@@ -1450,6 +1466,9 @@ static bool ath9k_hw_chip_reset(struct a
+@@ -1516,6 +1532,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;
  }
  
-@@ -1744,8 +1763,14 @@ static int ath9k_hw_do_fastcc(struct ath
+@@ -1819,8 +1838,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;
  }
  
-@@ -1995,6 +2020,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -2074,6 +2099,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
                ath9k_hw_set_radar_params(ah);
        }