brcmfmac: Add RSSI information to get_station.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Hante Meuleman 2015-10-08 20:33:17 +02:00 committed by Kalle Valo
parent 124d517211
commit cae355dc90
1 changed files with 23 additions and 0 deletions

View File

@ -2432,6 +2432,9 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
struct brcmf_sta_info_le sta_info_le; struct brcmf_sta_info_le sta_info_le;
u32 sta_flags; u32 sta_flags;
u32 is_tdls_peer; u32 is_tdls_peer;
s32 total_rssi;
s32 count_rssi;
u32 i;
brcmf_dbg(TRACE, "Enter, MAC %pM\n", mac); brcmf_dbg(TRACE, "Enter, MAC %pM\n", mac);
if (!check_vif_up(ifp->vif)) if (!check_vif_up(ifp->vif))
@ -2492,6 +2495,26 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
sinfo->filled |= BIT(NL80211_STA_INFO_RX_BYTES); sinfo->filled |= BIT(NL80211_STA_INFO_RX_BYTES);
sinfo->rx_bytes = le64_to_cpu(sta_info_le.rx_tot_bytes); sinfo->rx_bytes = le64_to_cpu(sta_info_le.rx_tot_bytes);
} }
total_rssi = 0;
count_rssi = 0;
for (i = 0; i < BRCMF_ANT_MAX; i++) {
if (sta_info_le.rssi[i]) {
sinfo->chain_signal_avg[count_rssi] =
sta_info_le.rssi[i];
sinfo->chain_signal[count_rssi] =
sta_info_le.rssi[i];
total_rssi += sta_info_le.rssi[i];
count_rssi++;
}
}
if (count_rssi) {
sinfo->filled |= BIT(NL80211_STA_INFO_CHAIN_SIGNAL);
sinfo->chains = count_rssi;
sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
total_rssi /= count_rssi;
sinfo->signal = total_rssi;
}
} }
done: done:
brcmf_dbg(TRACE, "Exit\n"); brcmf_dbg(TRACE, "Exit\n");