diff options
Diffstat (limited to 'package/kernel/mac80211/patches/304-ath9k-Enable-multi-channel-properly.patch')
-rw-r--r-- | package/kernel/mac80211/patches/304-ath9k-Enable-multi-channel-properly.patch | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/package/kernel/mac80211/patches/304-ath9k-Enable-multi-channel-properly.patch b/package/kernel/mac80211/patches/304-ath9k-Enable-multi-channel-properly.patch deleted file mode 100644 index e743eb8..0000000 --- a/package/kernel/mac80211/patches/304-ath9k-Enable-multi-channel-properly.patch +++ /dev/null @@ -1,82 +0,0 @@ -From: Sujith Manoharan <c_manoha@qca.qualcomm.com> -Date: Fri, 17 Oct 2014 07:40:09 +0530 -Subject: [PATCH] ath9k: Enable multi-channel properly - -In MCC mode, currently the decision to enable -the multi-channel state machine is done -based on the association status if one of -the interfaces assigned to a context is in -station mode. - -This allows the driver to switch to the other -context before the current station is able to -complete the 4-way handshake in case it is -required and this causes problems. - -Instead, enable multi-channel mode when the -station moves to the authorized state. This -disallows an early switch to the other channel. - -Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> ---- - ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -362,7 +362,7 @@ enum ath_chanctx_event { - ATH_CHANCTX_EVENT_BEACON_SENT, - ATH_CHANCTX_EVENT_TSF_TIMER, - ATH_CHANCTX_EVENT_BEACON_RECEIVED, -- ATH_CHANCTX_EVENT_ASSOC, -+ ATH_CHANCTX_EVENT_AUTHORIZED, - ATH_CHANCTX_EVENT_SWITCH, - ATH_CHANCTX_EVENT_ASSIGN, - ATH_CHANCTX_EVENT_UNASSIGN, ---- a/drivers/net/wireless/ath/ath9k/channel.c -+++ b/drivers/net/wireless/ath/ath9k/channel.c -@@ -171,7 +171,7 @@ static const char *chanctx_event_string( - case_rtn_string(ATH_CHANCTX_EVENT_BEACON_SENT); - case_rtn_string(ATH_CHANCTX_EVENT_TSF_TIMER); - case_rtn_string(ATH_CHANCTX_EVENT_BEACON_RECEIVED); -- case_rtn_string(ATH_CHANCTX_EVENT_ASSOC); -+ case_rtn_string(ATH_CHANCTX_EVENT_AUTHORIZED); - case_rtn_string(ATH_CHANCTX_EVENT_SWITCH); - case_rtn_string(ATH_CHANCTX_EVENT_ASSIGN); - case_rtn_string(ATH_CHANCTX_EVENT_UNASSIGN); -@@ -510,7 +510,7 @@ void ath_chanctx_event(struct ath_softc - - ath_chanctx_setup_timer(sc, tsf_time); - break; -- case ATH_CHANCTX_EVENT_ASSOC: -+ case ATH_CHANCTX_EVENT_AUTHORIZED: - if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE || - avp->chanctx != sc->cur_chan) - break; ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1569,6 +1569,13 @@ static int ath9k_sta_state(struct ieee80 - "Remove station: %pM\n", sta->addr); - } - -+ if (ath9k_is_chanctx_enabled()) { -+ if (old_state == IEEE80211_STA_ASSOC && -+ new_state == IEEE80211_STA_AUTHORIZED) -+ ath_chanctx_event(sc, vif, -+ ATH_CHANCTX_EVENT_AUTHORIZED); -+ } -+ - return ret; - } - -@@ -1761,12 +1768,6 @@ static void ath9k_bss_info_changed(struc - avp->assoc = bss_conf->assoc; - - ath9k_calculate_summary_state(sc, avp->chanctx); -- -- if (ath9k_is_chanctx_enabled()) { -- if (bss_conf->assoc) -- ath_chanctx_event(sc, vif, -- ATH_CHANCTX_EVENT_ASSOC); -- } - } - - if (changed & BSS_CHANGED_IBSS) { |