Root/package/mac80211/patches/581-ath9k_report_missing_signal.patch

1--- a/drivers/net/wireless/ath/ath9k/recv.c
2+++ b/drivers/net/wireless/ath/ath9k/recv.c
3@@ -954,6 +954,7 @@ static void ath9k_process_rssi(struct at
4     struct ath_softc *sc = hw->priv;
5     struct ath_hw *ah = common->ah;
6     int last_rssi;
7+ int rssi = rx_stats->rs_rssi;
8 
9     if (!rx_stats->is_mybeacon ||
10         ((ah->opmode != NL80211_IFTYPE_STATION) &&
11@@ -965,13 +966,12 @@ static void ath9k_process_rssi(struct at
12 
13     last_rssi = sc->last_rssi;
14     if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER))
15- rx_stats->rs_rssi = ATH_EP_RND(last_rssi,
16- ATH_RSSI_EP_MULTIPLIER);
17- if (rx_stats->rs_rssi < 0)
18- rx_stats->rs_rssi = 0;
19+ rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER);
20+ if (rssi < 0)
21+ rssi = 0;
22 
23     /* Update Beacon RSSI, this is used by ANI. */
24- ah->stats.avgbrssi = rx_stats->rs_rssi;
25+ ah->stats.avgbrssi = rssi;
26 }
27 
28 /*
29@@ -1012,6 +1012,8 @@ static int ath9k_rx_skb_preprocess(struc
30     rx_status->signal = ah->noise + rx_stats->rs_rssi;
31     rx_status->antenna = rx_stats->rs_antenna;
32     rx_status->flag |= RX_FLAG_MACTIME_MPDU;
33+ if (rx_stats->rs_moreaggr)
34+ rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
35 
36     for (i = 0, j = 0; i < ARRAY_SIZE(rx_stats->rs_rssi_ctl); i++) {
37         s8 rssi;
38

Archive Download this file



interactive