diff options
-rw-r--r-- | package/mac80211/patches/441-ath5k_no_agc_recalibration.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/package/mac80211/patches/441-ath5k_no_agc_recalibration.patch b/package/mac80211/patches/441-ath5k_no_agc_recalibration.patch new file mode 100644 index 0000000000..87d0743d32 --- /dev/null +++ b/package/mac80211/patches/441-ath5k_no_agc_recalibration.patch @@ -0,0 +1,42 @@ +--- a/drivers/net/wireless/ath/ath5k/phy.c ++++ b/drivers/net/wireless/ath/ath5k/phy.c +@@ -1871,31 +1871,15 @@ ath5k_hw_phy_calibrate(struct ath5k_hw * + ret = 0; + } + +- /* On full calibration do an AGC calibration and +- * request a PAPD probe for gainf calibration if +- * needed */ +- if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL) { ++ /* On full calibration request a PAPD probe for ++ * gainf calibration if needed */ ++ if ((ah->ah_cal_mask & AR5K_CALIBRATION_FULL) && ++ (ah->ah_radio == AR5K_RF5111 || ++ ah->ah_radio == AR5K_RF5112) && ++ channel->hw_value != AR5K_MODE_11B) ++ ath5k_hw_request_rfgain_probe(ah); + +- AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL, +- AR5K_PHY_AGCCTL_CAL); +- +- ret = ath5k_hw_register_timeout(ah, AR5K_PHY_AGCCTL, +- AR5K_PHY_AGCCTL_CAL | AR5K_PHY_AGCCTL_NF, +- 0, false); +- if (ret) { +- ATH5K_ERR(ah, +- "gain calibration timeout (%uMHz)\n", +- channel->center_freq); +- } +- +- if ((ah->ah_radio == AR5K_RF5111 || +- ah->ah_radio == AR5K_RF5112) +- && (channel->hw_value != AR5K_MODE_11B)) +- ath5k_hw_request_rfgain_probe(ah); +- } +- +- /* Update noise floor +- * XXX: Only do this after AGC calibration */ ++ /* Update noise floor */ + if (!(ah->ah_cal_mask & AR5K_CALIBRATION_NF)) + ath5k_hw_update_noise_floor(ah); + |