From: Sujith Manoharan <c_man...@qca.qualcomm.com>

When an active context transitions to inactive
state, the NoA schedule needs to be removed
for the context that has beaconing enabled.
Not doing this will affect p2p clients.

Signed-off-by: Sujith Manoharan <c_man...@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath9k/channel.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/channel.c 
b/drivers/net/wireless/ath/ath9k/channel.c
index 709facc..74a5c27 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -356,6 +356,21 @@ void ath_chanctx_event(struct ath_softc *sc, struct 
ieee80211_vif *vif,
                                "Move chanctx state from WAIT_FOR_TIMER to 
WAIT_FOR_BEACON\n");
                }
 
+               /*
+                * When a context becomes inactive, for example,
+                * disassociation of a station context, the NoA
+                * attribute needs to be removed from subsequent
+                * beacons.
+                */
+               if (!ctx->active && avp->noa_duration &&
+                   sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) {
+                       avp->noa_duration = 0;
+                       avp->periodic_noa = false;
+
+                       ath_dbg(common, CHAN_CTX,
+                               "Clearing NoA schedule\n");
+               }
+
                if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON)
                        break;
 
-- 
2.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to