wl1271: exit ELP mode when setting enabled rates in tx
authorLuciano Coelho <luciano.coelho@nokia.com>
Wed, 20 Oct 2010 12:15:52 +0000 (15:15 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 15 Nov 2010 18:25:14 +0000 (13:25 -0500)
This bug was being triggered by a call to acx_rate_policies in tx_work
without calling ps_elp_wakeup first.  If we have full PSM enabled, this
happens rather often, immediately after association.

Reported-by: Tuomas Katila <ext-tuomas.2.katila@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Tested-by: Tuomas Katila <ext-tuomas.2.katila@nokia.com>
drivers/net/wireless/wl12xx/wl1271_tx.c

index 46fafe08f81a5b4217315d5ab9d486a94ad09a76..279be5b98d9fe2f00e6439f4961b80b7e9823516 100644 (file)
@@ -261,6 +261,11 @@ void wl1271_tx_work_locked(struct wl1271 *wl)
 
        /* if rates have changed, re-configure the rate policy */
        if (unlikely(sta_rates)) {
+               ret = wl1271_ps_elp_wakeup(wl, false);
+               if (ret < 0)
+                       goto out;
+               woken_up = true;
+
                wl->rate_set = wl1271_tx_enabled_rates_get(wl, sta_rates);
                wl1271_acx_rate_policies(wl);
        }