PERFORCE change 64831 for review
Sam Leffler
sam at FreeBSD.org
Wed Nov 10 10:48:02 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=64831
Change 64831 by sam at sam_ebb on 2004/11/10 18:47:23
correct initial recv rssi handling; fixes scanning problem where
we selected the wrong station based on rssi
Affected files ...
.. //depot/projects/wifi/sys/dev/ath/if_ath.c#17 edit
Differences ...
==== //depot/projects/wifi/sys/dev/ath/if_ath.c#17 (text+ko) ====
@@ -2076,6 +2076,10 @@
/* XXX stat+msg */
return NULL;
}
+ an->an_avgrssi = ATH_RSSI_DUMMY_MARKER;
+ an->an_halstats.ns_avgbrssi = ATH_RSSI_DUMMY_MARKER;
+ an->an_halstats.ns_avgrssi = ATH_RSSI_DUMMY_MARKER;
+ an->an_halstats.ns_avgtxrssi = ATH_RSSI_DUMMY_MARKER;
ath_rate_node_init(sc, an);
DPRINTF(sc, ATH_DEBUG_NODE, "%s: an %p\n", __func__, an);
@@ -2131,8 +2135,13 @@
u_int32_t avgrssi = ATH_NODE_CONST(ni)->an_avgrssi;
int32_t rssi;
- rssi = HAL_EP_RND(avgrssi, HAL_RSSI_EP_MULTIPLIER);
- if (rssi == 0)
+ /*
+ * When only one frame is received there will be no state in
+ * avgrssi so fallback on the value recorded by the 802.11 layer.
+ */
+ if (avgrssi != ATH_RSSI_DUMMY_MARKER)
+ rssi = HAL_EP_RND(avgrssi, HAL_RSSI_EP_MULTIPLIER);
+ else
rssi = ni->ni_rssi;
/* NB: theoretically we shouldn't need this, but be paranoid */
return rssi < 0 ? 0 : rssi > 127 ? 127 : rssi;
More information about the p4-projects
mailing list