ath9k: make noise floor calibration and periodic calibration mutually exclusive
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41155
This commit is contained in:
parent
f2e5a82296
commit
f3e37c359d
1 changed files with 42 additions and 0 deletions
|
@ -0,0 +1,42 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
|
||||
@@ -660,7 +660,6 @@ static void ar9002_hw_olc_temp_compensat
|
||||
static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
|
||||
u8 rxchainmask, bool longcal)
|
||||
{
|
||||
- bool iscaldone = true;
|
||||
struct ath9k_cal_list *currCal = ah->cal_list_curr;
|
||||
bool nfcal, nfcal_pending = false;
|
||||
int ret;
|
||||
@@ -672,15 +671,13 @@ static int ar9002_hw_calibrate(struct at
|
||||
if (currCal && !nfcal &&
|
||||
(currCal->calState == CAL_RUNNING ||
|
||||
currCal->calState == CAL_WAITING)) {
|
||||
- iscaldone = ar9002_hw_per_calibration(ah, chan,
|
||||
- rxchainmask, currCal);
|
||||
- if (iscaldone) {
|
||||
- ah->cal_list_curr = currCal = currCal->calNext;
|
||||
-
|
||||
- if (currCal->calState == CAL_WAITING) {
|
||||
- iscaldone = false;
|
||||
- ath9k_hw_reset_calibration(ah, currCal);
|
||||
- }
|
||||
+ if (!ar9002_hw_per_calibration(ah, chan, rxchainmask, currCal))
|
||||
+ return 0;
|
||||
+
|
||||
+ ah->cal_list_curr = currCal = currCal->calNext;
|
||||
+ if (currCal->calState == CAL_WAITING) {
|
||||
+ ath9k_hw_reset_calibration(ah, currCal);
|
||||
+ return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -710,7 +707,7 @@ static int ar9002_hw_calibrate(struct at
|
||||
}
|
||||
}
|
||||
|
||||
- return iscaldone;
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/* Carrier leakage Calibration fix */
|
Loading…
Reference in a new issue