ath9k: Make sure null func frame is acked before going into PS for ar9003
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Tue, 18 May 2010 01:57:54 +0000 (18:57 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 2 Jun 2010 20:13:19 +0000 (16:13 -0400)
Add missing code to handle nullfunc frame completion in
ath_tx_edma_tasklet().

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/xmit.c

index 859aa4ab07698aafcd937b606cb7bafd7f4e05fe..f63f6a944d62938783e19b9af1add04a3e883b1a 100644 (file)
@@ -2279,6 +2279,17 @@ void ath_tx_edma_tasklet(struct ath_softc *sc)
 
                txok = !(txs.ts_status & ATH9K_TXERR_MASK);
 
+               /*
+                * Make sure null func frame is acked before configuring
+                * hw into ps mode.
+                */
+               if (bf->bf_isnullfunc && txok) {
+                       if ((sc->ps_flags & PS_ENABLED))
+                               ath9k_enable_ps(sc);
+                       else
+                               sc->ps_flags |= PS_NULLFUNC_COMPLETED;
+               }
+
                if (!bf_isampdu(bf)) {
                        bf->bf_retries = txs.ts_longretry;
                        if (txs.ts_status & ATH9K_TXERR_XRETRY)