|
@@ -346,34 +346,34 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
|
|
|
struct ieee80211_channel *c = chan->chan;
|
|
|
struct ath9k_hw_cal_data *caldata = ah->caldata;
|
|
|
|
|
|
- if (!caldata)
|
|
|
- return false;
|
|
|
-
|
|
|
chan->channelFlags &= (~CHANNEL_CW_INT);
|
|
|
if (REG_READ(ah, AR_PHY_AGC_CONTROL) & AR_PHY_AGC_CONTROL_NF) {
|
|
|
ath_print(common, ATH_DBG_CALIBRATE,
|
|
|
"NF did not complete in calibration window\n");
|
|
|
- nf = 0;
|
|
|
- caldata->rawNoiseFloor = nf;
|
|
|
return false;
|
|
|
- } else {
|
|
|
- ath9k_hw_do_getnf(ah, nfarray);
|
|
|
- ath9k_hw_nf_sanitize(ah, nfarray);
|
|
|
- nf = nfarray[0];
|
|
|
- if (ath9k_hw_get_nf_thresh(ah, c->band, &nfThresh)
|
|
|
- && nf > nfThresh) {
|
|
|
- ath_print(common, ATH_DBG_CALIBRATE,
|
|
|
- "noise floor failed detected; "
|
|
|
- "detected %d, threshold %d\n",
|
|
|
- nf, nfThresh);
|
|
|
- chan->channelFlags |= CHANNEL_CW_INT;
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ ath9k_hw_do_getnf(ah, nfarray);
|
|
|
+ ath9k_hw_nf_sanitize(ah, nfarray);
|
|
|
+ nf = nfarray[0];
|
|
|
+ if (ath9k_hw_get_nf_thresh(ah, c->band, &nfThresh)
|
|
|
+ && nf > nfThresh) {
|
|
|
+ ath_print(common, ATH_DBG_CALIBRATE,
|
|
|
+ "noise floor failed detected; "
|
|
|
+ "detected %d, threshold %d\n",
|
|
|
+ nf, nfThresh);
|
|
|
+ chan->channelFlags |= CHANNEL_CW_INT;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!caldata) {
|
|
|
+ chan->noisefloor = nf;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
h = caldata->nfCalHist;
|
|
|
caldata->nfcal_pending = false;
|
|
|
ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
|
|
|
- caldata->rawNoiseFloor = h[0].privNF;
|
|
|
+ chan->noisefloor = h[0].privNF;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -401,10 +401,10 @@ void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
|
|
|
|
|
|
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan)
|
|
|
{
|
|
|
- if (!ah->caldata || !ah->caldata->rawNoiseFloor)
|
|
|
+ if (!ah->curchan || !ah->curchan->noisefloor)
|
|
|
return ath9k_hw_get_default_nf(ah, chan);
|
|
|
|
|
|
- return ah->caldata->rawNoiseFloor;
|
|
|
+ return ah->curchan->noisefloor;
|
|
|
}
|
|
|
EXPORT_SYMBOL(ath9k_hw_getchan_noise);
|
|
|
|