diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-10-19 22:11:21 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-10-19 22:11:21 +0000 |
commit | 6adbeb35c1cf86ae6dd0da7fd86000f3bb5c5a55 (patch) | |
tree | b16d1ff2ef65812b2ab94c7220001af60c5f334f /package/mac80211/patches/553-ath9k_no_node_rssi.patch | |
parent | edb7be2e2baa2caa0070ca3a39360d4d96a7dab8 (diff) | |
download | mtk-20170518-6adbeb35c1cf86ae6dd0da7fd86000f3bb5c5a55.zip mtk-20170518-6adbeb35c1cf86ae6dd0da7fd86000f3bb5c5a55.tar.gz mtk-20170518-6adbeb35c1cf86ae6dd0da7fd86000f3bb5c5a55.tar.bz2 |
mac80211: update to wireless-testing 2010-10-19
SVN-Revision: 23540
Diffstat (limited to 'package/mac80211/patches/553-ath9k_no_node_rssi.patch')
-rw-r--r-- | package/mac80211/patches/553-ath9k_no_node_rssi.patch | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/package/mac80211/patches/553-ath9k_no_node_rssi.patch b/package/mac80211/patches/553-ath9k_no_node_rssi.patch deleted file mode 100644 index 5991485..0000000 --- a/package/mac80211/patches/553-ath9k_no_node_rssi.patch +++ /dev/null @@ -1,145 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -271,7 +271,6 @@ struct ath_node { - struct ath_atx_ac ac[WME_NUM_AC]; - u16 maxampdu; - u8 mpdudensity; -- int last_rssi; - }; - - #define AGGR_CLEANUP BIT(1) -@@ -666,6 +665,7 @@ struct ath_wiphy { - bool idle; - int chan_idx; - int chan_is_ht; -+ int last_rssi; - }; - - void ath9k_tasklet(unsigned long data); ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -553,7 +553,6 @@ static void ath_node_attach(struct ath_s - an->maxampdu = 1 << (IEEE80211_HT_MAX_AMPDU_FACTOR + - sta->ht_cap.ampdu_factor); - an->mpdudensity = parse_mpdudensity(sta->ht_cap.ampdu_density); -- an->last_rssi = ATH_RSSI_DUMMY_MARKER; - } - } - -@@ -822,9 +821,11 @@ static u32 ath_get_extchanmode(struct at - } - - static void ath9k_bss_assoc_info(struct ath_softc *sc, -+ struct ieee80211_hw *hw, - struct ieee80211_vif *vif, - struct ieee80211_bss_conf *bss_conf) - { -+ struct ath_wiphy *aphy = hw->priv; - struct ath_hw *ah = sc->sc_ah; - struct ath_common *common = ath9k_hw_common(ah); - -@@ -848,6 +849,7 @@ static void ath9k_bss_assoc_info(struct - ath_beacon_config(sc, vif); - - /* Reset rssi stats */ -+ aphy->last_rssi = ATH_RSSI_DUMMY_MARKER; - sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER; - - sc->sc_flags |= SC_OP_ANI_RUN; -@@ -1969,7 +1971,7 @@ static void ath9k_bss_info_changed(struc - if (changed & BSS_CHANGED_ASSOC) { - ath_print(common, ATH_DBG_CONFIG, "BSS Changed ASSOC %d\n", - bss_conf->assoc); -- ath9k_bss_assoc_info(sc, vif, bss_conf); -+ ath9k_bss_assoc_info(sc, hw, vif, bss_conf); - } - - mutex_unlock(&sc->mutex); ---- a/drivers/net/wireless/ath/ath9k/recv.c -+++ b/drivers/net/wireless/ath/ath9k/recv.c -@@ -960,36 +960,23 @@ static void ath9k_process_rssi(struct at - struct ieee80211_hdr *hdr, - struct ath_rx_status *rx_stats) - { -+ struct ath_wiphy *aphy = hw->priv; - struct ath_hw *ah = common->ah; -- struct ieee80211_sta *sta; -- struct ath_node *an; -- int last_rssi = ATH_RSSI_DUMMY_MARKER; -+ int last_rssi; - __le16 fc; - -- fc = hdr->frame_control; -+ if (ah->opmode != NL80211_IFTYPE_STATION) -+ return; - -- rcu_read_lock(); -- /* -- * XXX: use ieee80211_find_sta! This requires quite a bit of work -- * under the current ath9k virtual wiphy implementation as we have -- * no way of tying a vif to wiphy. Typically vifs are attached to -- * at least one sdata of a wiphy on mac80211 but with ath9k virtual -- * wiphy you'd have to iterate over every wiphy and each sdata. -- */ -- if (is_multicast_ether_addr(hdr->addr1)) -- sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, NULL); -- else -- sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, hdr->addr1); -+ fc = hdr->frame_control; -+ if (!ieee80211_is_beacon(fc) || -+ compare_ether_addr(hdr->addr3, common->curbssid)) -+ return; - -- if (sta) { -- an = (struct ath_node *) sta->drv_priv; -- if (rx_stats->rs_rssi != ATH9K_RSSI_BAD && -- !rx_stats->rs_moreaggr) -- ATH_RSSI_LPF(an->last_rssi, rx_stats->rs_rssi); -- last_rssi = an->last_rssi; -- } -- rcu_read_unlock(); -+ if (rx_stats->rs_rssi != ATH9K_RSSI_BAD && !rx_stats->rs_moreaggr) -+ ATH_RSSI_LPF(aphy->last_rssi, rx_stats->rs_rssi); - -+ last_rssi = aphy->last_rssi; - if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) - rx_stats->rs_rssi = ATH_EP_RND(last_rssi, - ATH_RSSI_EP_MULTIPLIER); -@@ -997,8 +984,7 @@ static void ath9k_process_rssi(struct at - rx_stats->rs_rssi = 0; - - /* Update Beacon RSSI, this is used by ANI. */ -- if (ieee80211_is_beacon(fc)) -- ah->stats.avgbrssi = rx_stats->rs_rssi; -+ ah->stats.avgbrssi = rx_stats->rs_rssi; - } - - /* ---- a/drivers/net/wireless/ath/ath9k/init.c -+++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -729,6 +729,7 @@ int ath9k_init_device(u16 devid, struct - const struct ath_bus_ops *bus_ops) - { - struct ieee80211_hw *hw = sc->hw; -+ struct ath_wiphy *aphy = hw->priv; - struct ath_common *common; - struct ath_hw *ah; - int error = 0; -@@ -781,6 +782,7 @@ int ath9k_init_device(u16 devid, struct - INIT_WORK(&sc->chan_work, ath9k_wiphy_chan_work); - INIT_DELAYED_WORK(&sc->wiphy_work, ath9k_wiphy_work); - sc->wiphy_scheduler_int = msecs_to_jiffies(500); -+ aphy->last_rssi = ATH_RSSI_DUMMY_MARKER; - - ath_init_leds(sc); - ath_start_rfkill_poll(sc); ---- a/drivers/net/wireless/ath/ath9k/virtual.c -+++ b/drivers/net/wireless/ath/ath9k/virtual.c -@@ -107,6 +107,7 @@ int ath9k_wiphy_add(struct ath_softc *sc - aphy->sc = sc; - aphy->hw = hw; - sc->sec_wiphy[i] = aphy; -+ aphy->last_rssi = ATH_RSSI_DUMMY_MARKER; - spin_unlock_bh(&sc->wiphy_lock); - - memcpy(addr, common->macaddr, ETH_ALEN); |