aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath9k/calib.c10
-rw-r--r--drivers/net/wireless/ath/ath9k/calib.h3
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/link.c3
4 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c
index d8db74b0ef66..278365b8a895 100644
--- a/drivers/net/wireless/ath/ath9k/calib.c
+++ b/drivers/net/wireless/ath/ath9k/calib.c
@@ -63,13 +63,13 @@ static s16 ath9k_hw_get_default_nf(struct ath_hw *ah,
63 return ath9k_hw_get_nf_limits(ah, chan)->nominal; 63 return ath9k_hw_get_nf_limits(ah, chan)->nominal;
64} 64}
65 65
66s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan) 66s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
67 s16 nf)
67{ 68{
68 s8 noise = ATH_DEFAULT_NOISE_FLOOR; 69 s8 noise = ATH_DEFAULT_NOISE_FLOOR;
69 70
70 if (chan && chan->noisefloor) { 71 if (nf) {
71 s8 delta = chan->noisefloor - 72 s8 delta = nf - ATH9K_NF_CAL_NOISE_THRESH -
72 ATH9K_NF_CAL_NOISE_THRESH -
73 ath9k_hw_get_default_nf(ah, chan); 73 ath9k_hw_get_default_nf(ah, chan);
74 if (delta > 0) 74 if (delta > 0)
75 noise += delta; 75 noise += delta;
@@ -392,7 +392,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
392 clear_bit(NFCAL_PENDING, &caldata->cal_flags); 392 clear_bit(NFCAL_PENDING, &caldata->cal_flags);
393 ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray); 393 ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
394 chan->noisefloor = h[0].privNF; 394 chan->noisefloor = h[0].privNF;
395 ah->noise = ath9k_hw_getchan_noise(ah, chan); 395 ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
396 return true; 396 return true;
397} 397}
398EXPORT_SYMBOL(ath9k_hw_getnf); 398EXPORT_SYMBOL(ath9k_hw_getnf);
diff --git a/drivers/net/wireless/ath/ath9k/calib.h b/drivers/net/wireless/ath/ath9k/calib.h
index 3d70b8c2bcdd..b8ed95e9a335 100644
--- a/drivers/net/wireless/ath/ath9k/calib.h
+++ b/drivers/net/wireless/ath/ath9k/calib.h
@@ -116,7 +116,8 @@ void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
116void ath9k_hw_bstuck_nfcal(struct ath_hw *ah); 116void ath9k_hw_bstuck_nfcal(struct ath_hw *ah);
117void ath9k_hw_reset_calibration(struct ath_hw *ah, 117void ath9k_hw_reset_calibration(struct ath_hw *ah,
118 struct ath9k_cal_list *currCal); 118 struct ath9k_cal_list *currCal);
119s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan); 119s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
120 s16 nf);
120 121
121 122
122#endif /* CALIB_H */ 123#endif /* CALIB_H */
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index dcdbab48709e..54b04155e43b 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1885,7 +1885,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
1885 } else if (caldata) { 1885 } else if (caldata) {
1886 clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags); 1886 clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags);
1887 } 1887 }
1888 ah->noise = ath9k_hw_getchan_noise(ah, chan); 1888 ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
1889 1889
1890 if (fastcc) { 1890 if (fastcc) {
1891 r = ath9k_hw_do_fastcc(ah, chan); 1891 r = ath9k_hw_do_fastcc(ah, chan);
diff --git a/drivers/net/wireless/ath/ath9k/link.c b/drivers/net/wireless/ath/ath9k/link.c
index 84a60644f93a..b7975195d740 100644
--- a/drivers/net/wireless/ath/ath9k/link.c
+++ b/drivers/net/wireless/ath/ath9k/link.c
@@ -518,7 +518,8 @@ void ath_update_survey_nf(struct ath_softc *sc, int channel)
518 518
519 if (chan->noisefloor) { 519 if (chan->noisefloor) {
520 survey->filled |= SURVEY_INFO_NOISE_DBM; 520 survey->filled |= SURVEY_INFO_NOISE_DBM;
521 survey->noise = ath9k_hw_getchan_noise(ah, chan); 521 survey->noise = ath9k_hw_getchan_noise(ah, chan,
522 chan->noisefloor);
522 } 523 }
523} 524}
524 525