Commit 5bc225ac authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by John W. Linville

ath9k: add noise floor parameter to ath9k_hw_getchan_noise

Add nf parameter to ath9k_hw_getchan_noise() in order to compute NF for EXT
chains with the same scale of noise floor calculated on CTL chains.
ath9k_hw_getchan_noise() will be used in ath_process_fft() for spectral scan on
HT40 channels
Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent df3c2ade
...@@ -63,13 +63,13 @@ static s16 ath9k_hw_get_default_nf(struct ath_hw *ah, ...@@ -63,13 +63,13 @@ static s16 ath9k_hw_get_default_nf(struct ath_hw *ah,
return ath9k_hw_get_nf_limits(ah, chan)->nominal; return ath9k_hw_get_nf_limits(ah, chan)->nominal;
} }
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan) s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
s16 nf)
{ {
s8 noise = ATH_DEFAULT_NOISE_FLOOR; s8 noise = ATH_DEFAULT_NOISE_FLOOR;
if (chan && chan->noisefloor) { if (nf) {
s8 delta = chan->noisefloor - s8 delta = nf - ATH9K_NF_CAL_NOISE_THRESH -
ATH9K_NF_CAL_NOISE_THRESH -
ath9k_hw_get_default_nf(ah, chan); ath9k_hw_get_default_nf(ah, chan);
if (delta > 0) if (delta > 0)
noise += delta; noise += delta;
...@@ -392,7 +392,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan) ...@@ -392,7 +392,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
clear_bit(NFCAL_PENDING, &caldata->cal_flags); clear_bit(NFCAL_PENDING, &caldata->cal_flags);
ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray); ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
chan->noisefloor = h[0].privNF; chan->noisefloor = h[0].privNF;
ah->noise = ath9k_hw_getchan_noise(ah, chan); ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
return true; return true;
} }
EXPORT_SYMBOL(ath9k_hw_getnf); EXPORT_SYMBOL(ath9k_hw_getnf);
......
...@@ -116,7 +116,8 @@ void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah, ...@@ -116,7 +116,8 @@ void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
void ath9k_hw_bstuck_nfcal(struct ath_hw *ah); void ath9k_hw_bstuck_nfcal(struct ath_hw *ah);
void ath9k_hw_reset_calibration(struct ath_hw *ah, void ath9k_hw_reset_calibration(struct ath_hw *ah,
struct ath9k_cal_list *currCal); struct ath9k_cal_list *currCal);
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan); s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
s16 nf);
#endif /* CALIB_H */ #endif /* CALIB_H */
...@@ -1885,7 +1885,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, ...@@ -1885,7 +1885,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
} else if (caldata) { } else if (caldata) {
clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags); clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags);
} }
ah->noise = ath9k_hw_getchan_noise(ah, chan); ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
if (fastcc) { if (fastcc) {
r = ath9k_hw_do_fastcc(ah, chan); r = ath9k_hw_do_fastcc(ah, chan);
......
...@@ -518,7 +518,8 @@ void ath_update_survey_nf(struct ath_softc *sc, int channel) ...@@ -518,7 +518,8 @@ void ath_update_survey_nf(struct ath_softc *sc, int channel)
if (chan->noisefloor) { if (chan->noisefloor) {
survey->filled |= SURVEY_INFO_NOISE_DBM; survey->filled |= SURVEY_INFO_NOISE_DBM;
survey->noise = ath9k_hw_getchan_noise(ah, chan); survey->noise = ath9k_hw_getchan_noise(ah, chan,
chan->noisefloor);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment