diff options
author | Johannes Berg <johannes.berg@intel.com> | 2015-08-28 10:52:54 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-09-22 15:21:26 +0200 |
commit | 338c17ae311e6b5a439573a4043fd2d9237cd1d5 (patch) | |
tree | 3383987c5faa4975b424e1eb5fa6e1b8e29678c8 /net/mac80211/ieee80211_i.h | |
parent | 8ec6d97871f37e4743678ea4a455bd59580aa0f4 (diff) | |
download | lwn-338c17ae311e6b5a439573a4043fd2d9237cd1d5.tar.gz lwn-338c17ae311e6b5a439573a4043fd2d9237cd1d5.zip |
mac80211: use DECLARE_EWMA for ave_beacon_signal
It doesn't seem problematic to change the weight for the average
beacon signal from 3 to 4, so use DECLARE_EWMA. This also makes
the code easier to maintain since bugs like the one fixed in the
previous patch can't happen as easily.
With a fix from Avraham Stern to invert the sign since EMWA uses
unsigned values only.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 9482f323fd19..f0aee764d9cd 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -419,6 +419,8 @@ struct ieee80211_sta_tx_tspec { bool downgraded; }; +DECLARE_EWMA(beacon_signal, 16, 4) + struct ieee80211_if_managed { struct timer_list timer; struct timer_list conn_mon_timer; @@ -490,13 +492,7 @@ struct ieee80211_if_managed { s16 p2p_noa_index; - /* - * Weighted average of the signal strength from Beacon frames in the - * current BSS. This is in units of 1/16 of the signal unit to maintain - * accuracy and to speed up calculations, i.e., the value need to be - * divided by 16 to get the actual value. - */ - int ave_beacon_signal; + struct ewma_beacon_signal ave_beacon_signal; /* * Number of Beacon frames used in ave_beacon_signal. This can be used |