This patch adds "last ack signal" and "avg ack signal" support
in station dump for valid ack rssi.

Signed-off-by: Balaji Pothunoori <[email protected]>
---
 net/mac80211/sta_info.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 6428f1a..12b618e 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2310,13 +2310,21 @@ void sta_set_sinfo(struct sta_info *sta, struct 
station_info *sinfo,
                sinfo->filled |= BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
        }
 
-       if (ieee80211_hw_check(&sta->local->hw, REPORTS_TX_ACK_STATUS) &&
-           !(sinfo->filled & BIT_ULL(NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG))) {
-               sinfo->avg_ack_signal =
-                       -(s8)ewma_avg_signal_read(
+       if (ieee80211_hw_check(&sta->local->hw, REPORTS_TX_ACK_STATUS)) {
+               if (sta->status_stats.ack_signal_filled && ((!(sinfo->filled &
+                   BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL))) ||
+                   (!(sinfo->filled &
+                   BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG))))) {
+                       sinfo->ack_signal =
+                               sta->status_stats.last_ack_signal;
+                       sinfo->filled |=
+                               BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
+                       sinfo->avg_ack_signal =
+                               -(s8)ewma_avg_signal_read(
                                &sta->status_stats.avg_ack_signal);
-               sinfo->filled |=
-                       BIT_ULL(NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG);
+                       sinfo->filled |=
+                               BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG);
+               }
        }
 }
 
-- 
2.7.4

Reply via email to