diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-10-18 17:38:59 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-10-18 17:38:59 +0000 |
commit | 2a685ec414827d135ee2788e42eed8021349aae1 (patch) | |
tree | 6bac812e354dc97195bb8843af018fed228440d6 /package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch | |
parent | 3cb3abd960114f0efc8b13f5c53b256cb5f704a6 (diff) | |
download | upstream-2a685ec414827d135ee2788e42eed8021349aae1.tar.gz upstream-2a685ec414827d135ee2788e42eed8021349aae1.tar.bz2 upstream-2a685ec414827d135ee2788e42eed8021349aae1.zip |
mac80211: update to 2014-10-08
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42952 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch')
-rw-r--r-- | package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch b/package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch new file mode 100644 index 0000000000..03f1304e87 --- /dev/null +++ b/package/kernel/mac80211/patches/303-ath9k-Use-sta_state-callback.patch @@ -0,0 +1,55 @@ +From: Sujith Manoharan <c_manoha@qca.qualcomm.com> +Date: Fri, 17 Oct 2014 07:40:08 +0530 +Subject: [PATCH] ath9k: Use sta_state() callback + +Instead of using the sta_add()/sta_remove() callbacks, +use the sta_state() callback since this gives +more fine-grained control. + +Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> +--- + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -1547,6 +1547,31 @@ static int ath9k_sta_remove(struct ieee8 + return 0; + } + ++static int ath9k_sta_state(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_sta *sta, ++ enum ieee80211_sta_state old_state, ++ enum ieee80211_sta_state new_state) ++{ ++ struct ath_softc *sc = hw->priv; ++ struct ath_common *common = ath9k_hw_common(sc->sc_ah); ++ int ret = 0; ++ ++ if (old_state == IEEE80211_STA_AUTH && ++ new_state == IEEE80211_STA_ASSOC) { ++ ret = ath9k_sta_add(hw, vif, sta); ++ ath_dbg(common, CONFIG, ++ "Add station: %pM\n", sta->addr); ++ } else if (old_state == IEEE80211_STA_ASSOC && ++ new_state == IEEE80211_STA_AUTH) { ++ ret = ath9k_sta_remove(hw, vif, sta); ++ ath_dbg(common, CONFIG, ++ "Remove station: %pM\n", sta->addr); ++ } ++ ++ return ret; ++} ++ + static void ath9k_sta_set_tx_filter(struct ath_hw *ah, + struct ath_node *an, + bool set) +@@ -2471,8 +2496,7 @@ struct ieee80211_ops ath9k_ops = { + .remove_interface = ath9k_remove_interface, + .config = ath9k_config, + .configure_filter = ath9k_configure_filter, +- .sta_add = ath9k_sta_add, +- .sta_remove = ath9k_sta_remove, ++ .sta_state = ath9k_sta_state, + .sta_notify = ath9k_sta_notify, + .conf_tx = ath9k_conf_tx, + .bss_info_changed = ath9k_bss_info_changed, |