Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
[linux-drm-fsl-dcu.git] / drivers / net / wireless / ath / ath9k / calib.c
index d8db74b0ef6654587fb7bdbc1b23b6db77849b94..278365b8a8955dda362292b99949e63155be354c 100644 (file)
@@ -63,13 +63,13 @@ static s16 ath9k_hw_get_default_nf(struct ath_hw *ah,
        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;
 
-       if (chan && chan->noisefloor) {
-               s8 delta = chan->noisefloor -
-                          ATH9K_NF_CAL_NOISE_THRESH -
+       if (nf) {
+               s8 delta = nf - ATH9K_NF_CAL_NOISE_THRESH -
                           ath9k_hw_get_default_nf(ah, chan);
                if (delta > 0)
                        noise += delta;
@@ -392,7 +392,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
        clear_bit(NFCAL_PENDING, &caldata->cal_flags);
        ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
        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;
 }
 EXPORT_SYMBOL(ath9k_hw_getnf);