mac80211: add support for per-chain signal strength reporting
Signed-off-by: Felix Fietkau <nbd@openwrt.org> [fix unit documentation] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
119363c7dc
commit
ef0621e805
5 changed files with 39 additions and 1 deletions
|
@ -1372,6 +1372,7 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
|
|||
struct sk_buff *skb = rx->skb;
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||
int i;
|
||||
|
||||
if (!sta)
|
||||
return RX_CONTINUE;
|
||||
|
@ -1422,6 +1423,19 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
|
|||
ewma_add(&sta->avg_signal, -status->signal);
|
||||
}
|
||||
|
||||
if (status->chains) {
|
||||
sta->chains = status->chains;
|
||||
for (i = 0; i < ARRAY_SIZE(status->chain_signal); i++) {
|
||||
int signal = status->chain_signal[i];
|
||||
|
||||
if (!(status->chains & BIT(i)))
|
||||
continue;
|
||||
|
||||
sta->chain_signal_last[i] = signal;
|
||||
ewma_add(&sta->chain_signal_avg[i], -signal);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Change STA power saving mode only at the end of a frame
|
||||
* exchange sequence.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue