ath9k: fix passing MAC time to mac80211
authorFelix Fietkau <nbd@openwrt.org>
Sat, 10 Mar 2012 13:31:27 +0000 (13:31 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 10 Mar 2012 13:31:27 +0000 (13:31 +0000)
SVN-Revision: 30869

package/mac80211/patches/300-pending_work.patch
package/mac80211/patches/550-ath9k_per_chain_signal_strength.patch

index 4eb0a3f14e29b8a728787fa0e4cf837dd6d11cc2..0ca6a02b5f30c50fdc000a8d23e7b46412e9bda9 100644 (file)
  }
  
  /*
-@@ -1011,6 +1010,8 @@ static int ath9k_rx_skb_preprocess(struc
+@@ -988,8 +987,6 @@ static int ath9k_rx_skb_preprocess(struc
+ {
+       struct ath_hw *ah = common->ah;
+-      memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
+-
+       /*
+        * everything but the rate is checked here, the rate check is done
+        * separately to avoid doing two lookups for a rate for each frame.
+@@ -1011,6 +1008,8 @@ static int ath9k_rx_skb_preprocess(struc
        rx_status->signal = ah->noise + rx_stats->rs_rssi;
        rx_status->antenna = rx_stats->rs_antenna;
        rx_status->flag |= RX_FLAG_MACTIME_MPDU;
  
        return 0;
  }
+@@ -1845,6 +1844,8 @@ int ath_rx_tasklet(struct ath_softc *sc,
+               if (sc->sc_flags & SC_OP_RXFLUSH)
+                       goto requeue_drop_frag;
++              memset(rxs, 0, sizeof(struct ieee80211_rx_status));
++
+               rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp;
+               if (rs.rs_tstamp > tsf_lower &&
+                   unlikely(rs.rs_tstamp - tsf_lower > 0x10000000))
 --- a/drivers/net/wireless/ath/ath9k/beacon.c
 +++ b/drivers/net/wireless/ath/ath9k/beacon.c
 @@ -91,7 +91,7 @@ static void ath_beacon_setup(struct ath_
index 5842e5d0f9f995e52fe458f11ebcb8c6e269f17c..47cc252e8436f95d17652307c9b5869692534328 100644 (file)
        struct ath_hw *ah = common->ah;
 +      int i, j;
  
-       memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
-@@ -1013,6 +1014,20 @@ static int ath9k_rx_skb_preprocess(struc
+       /*
+        * everything but the rate is checked here, the rate check is done
+@@ -1011,6 +1012,20 @@ static int ath9k_rx_skb_preprocess(struc
        if (rx_stats->rs_moreaggr)
                rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
  
        return 0;
  }
  
-@@ -1543,14 +1558,14 @@ static void ath_ant_comb_scan(struct ath
+@@ -1541,14 +1556,14 @@ static void ath_ant_comb_scan(struct ath
        struct ath_ant_comb *antcomb = &sc->ant_comb;
        int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
        int curr_main_set;