svn commit: r300079 - head/sys/dev/bwn
Adrian Chadd
adrian at FreeBSD.org
Tue May 17 21:24:11 UTC 2016
Author: adrian
Date: Tue May 17 21:24:10 2016
New Revision: 300079
URL: https://svnweb.freebsd.org/changeset/base/300079
Log:
[bwn] correctly calculate RSSI level.
Tested:
* BCM4311, PHY-G, STA mode
* BCM4312, PHY-LP, STA mode
* BCM4321, PHY-N, STA moe
Modified:
head/sys/dev/bwn/if_bwn.c
Modified: head/sys/dev/bwn/if_bwn.c
==============================================================================
--- head/sys/dev/bwn/if_bwn.c Tue May 17 21:23:13 2016 (r300078)
+++ head/sys/dev/bwn/if_bwn.c Tue May 17 21:24:10 2016 (r300079)
@@ -5770,13 +5770,25 @@ bwn_rxeof(struct bwn_mac *mac, struct mb
rssi = max(rxhdr->phy.n.power1, rxhdr->ps2.n.power2);
else
rssi = max(rxhdr->phy.n.power0, rxhdr->phy.n.power1);
+#if 0
+ DPRINTF(mac->mac_sc, BWN_DEBUG_RECV,
+ "%s: power0=%d, power1=%d, power2=%d\n",
+ __func__,
+ rxhdr->phy.n.power0,
+ rxhdr->phy.n.power1,
+ rxhdr->ps2.n.power2);
+#endif
break;
default:
/* XXX TODO: implement rssi for other PHYs */
break;
}
+ /*
+ * RSSI here is absolute, not relative to the noise floor.
+ */
noise = mac->mac_stats.link_noise;
+ rssi = rssi - noise;
/* RX radio tap */
if (ieee80211_radiotap_active(ic))
More information about the svn-src-all
mailing list