On Sat, Apr 02, 2011 at 03:39:46AM +0200, Felix Fietkau wrote: > The reported RSSI values are relative to the calibrated noise floor, not > relative to a hardcoded value of -95. > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/recv.c | 11 ++++++++++- > 1 files changed, 10 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c > index a9c3f46..87d96c5 100644 > --- a/drivers/net/wireless/ath/ath9k/recv.c > +++ b/drivers/net/wireless/ath/ath9k/recv.c > @@ -959,6 +959,9 @@ static int ath9k_rx_skb_preprocess(struct ath_common *common, > struct ieee80211_rx_status *rx_status, > bool *decrypt_error) > { > + struct ath_hw *ah = common->ah; > + int noise; > + > memset(rx_status, 0, sizeof(struct ieee80211_rx_status)); > > /* > @@ -979,7 +982,13 @@ static int ath9k_rx_skb_preprocess(struct ath_common *common, > > rx_status->band = hw->conf.channel->band; > rx_status->freq = hw->conf.channel->center_freq; > - rx_status->signal = ATH_DEFAULT_NOISE_FLOOR + rx_stats->rs_rssi; In some cases noisefloor values were not reliable and so using default works for most of the cases. Please refer to our earlier commit a59b5a5e684652eec035c869ab8911a1689c8f53. Let me see if i can get more information. > + > + if (ah->curchan) > + noise = ah->curchan->noisefloor; Even otherwise, noisefloor can be zero sometimes and so it can return incorrect signal strengths.. Please refer to some samples. BSS 00:10:18:90:3a:9e (on wlan56) TSF: 110532917222 usec (1d, 06:42:12) freq: 2462 beacon interval: 100 capability: ESS (0x0001) signal: 50.00 dBm last seen: 20 ms ago SSID: Broadcom Supported rates: 1.0* 2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0 DS Parameter set: channel 11 ERP: NonERP_Present Use_Protection Barker_Preamble_Mode Extended supported rates: 6.0 9.0 12.0 48.0 HT capabilities: SS 00:03:7f:0b:a6:1b (on wlan56) TSF: 4376472960 usec (0d, 01:12:56) freq: 2462 beacon interval: 100 capability: ESS Privacy ShortPreamble (0x0031) signal: 60.00 dBm last seen: 8 ms ago SSID: STRESS-HB125 > + else > + noise = ATH_DEFAULT_NOISE_FLOOR; > + > + rx_status->signal = noise + rx_stats->rs_rssi; > rx_status->antenna = rx_stats->rs_antenna; > rx_status->flag |= RX_FLAG_MACTIME_MPDU; > > -- > 1.7.3.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html