diff options
Diffstat (limited to 'package/kernel/mac80211/patches/320-ath9k-Use-a-helper-function-for-bmiss.patch')
-rw-r--r-- | package/kernel/mac80211/patches/320-ath9k-Use-a-helper-function-for-bmiss.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/320-ath9k-Use-a-helper-function-for-bmiss.patch b/package/kernel/mac80211/patches/320-ath9k-Use-a-helper-function-for-bmiss.patch new file mode 100644 index 0000000000..03b76ecd7c --- /dev/null +++ b/package/kernel/mac80211/patches/320-ath9k-Use-a-helper-function-for-bmiss.patch @@ -0,0 +1,68 @@ +From: Sujith Manoharan <c_manoha@qca.qualcomm.com> +Date: Fri, 17 Oct 2014 07:40:25 +0530 +Subject: [PATCH] ath9k: Use a helper function for bmiss + +Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> +--- + +--- a/drivers/net/wireless/ath/ath9k/channel.c ++++ b/drivers/net/wireless/ath/ath9k/channel.c +@@ -366,6 +366,31 @@ static void ath_chanctx_setup_timer(stru + "Setup chanctx timer with timeout: %d ms\n", jiffies_to_msecs(tsf_time)); + } + ++static void ath_chanctx_handle_bmiss(struct ath_softc *sc, ++ struct ath_chanctx *ctx, ++ struct ath_vif *avp) ++{ ++ /* ++ * Clear the extend_absence flag if it had been ++ * set during the previous beacon transmission, ++ * since we need to revert to the normal NoA ++ * schedule. ++ */ ++ if (ctx->active && sc->sched.extend_absence) { ++ avp->noa_duration = 0; ++ sc->sched.extend_absence = false; ++ } ++ ++ /* If at least two consecutive beacons were missed on the STA ++ * chanctx, stay on the STA channel for one extra beacon period, ++ * to resync the timer properly. ++ */ ++ if (ctx->active && sc->sched.beacon_miss >= 2) { ++ avp->noa_duration = 0; ++ sc->sched.extend_absence = true; ++ } ++} ++ + static void ath_chanctx_offchannel_noa(struct ath_softc *sc, + struct ath_chanctx *ctx, + struct ath_vif *avp, +@@ -524,25 +549,7 @@ void ath_chanctx_event(struct ath_softc + break; + } + +- /* +- * Clear the extend_absence flag if it had been +- * set during the previous beacon transmission, +- * since we need to revert to the normal NoA +- * schedule. +- */ +- if (ctx->active && sc->sched.extend_absence) { +- avp->noa_duration = 0; +- sc->sched.extend_absence = false; +- } +- +- /* If at least two consecutive beacons were missed on the STA +- * chanctx, stay on the STA channel for one extra beacon period, +- * to resync the timer properly. +- */ +- if (ctx->active && sc->sched.beacon_miss >= 2) { +- avp->noa_duration = 0; +- sc->sched.extend_absence = true; +- } ++ ath_chanctx_handle_bmiss(sc, ctx, avp); + + /* Prevent wrap-around issues */ + if (avp->noa_duration && tsf_time - avp->noa_start > BIT(30)) |