wl1271: wakeup chip in op_conf_tx()
authorKalle Valo <kalle.valo@nokia.com>
Thu, 18 Feb 2010 11:25:47 +0000 (13:25 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 19 Feb 2010 20:52:45 +0000 (15:52 -0500)
elp_wakeup() was missing in op_conf_tx() which caused wakeup problems in
power save. I forgot to add this part when porting the patch from wl1251.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_main.c

index c7f5191e7dbfaa9b2df83e1ebf55f9671782285a..9de7df76f53bcbd093e31e0b4cb7db094dcefd52 100644 (file)
@@ -1738,11 +1738,15 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
 
        wl1271_debug(DEBUG_MAC80211, "mac80211 conf tx %d", queue);
 
+       ret = wl1271_ps_elp_wakeup(wl, false);
+       if (ret < 0)
+               goto out;
+
        ret = wl1271_acx_ac_cfg(wl, wl1271_tx_get_queue(queue),
                                params->cw_min, params->cw_max,
                                params->aifs, params->txop);
        if (ret < 0)
-               goto out;
+               goto out_sleep;
 
        ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue),
                                 CONF_CHANNEL_TYPE_EDCF,
@@ -1750,7 +1754,10 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
                                 CONF_PS_SCHEME_LEGACY_PSPOLL,
                                 CONF_ACK_POLICY_LEGACY, 0, 0);
        if (ret < 0)
-               goto out;
+               goto out_sleep;
+
+out_sleep:
+       wl1271_ps_elp_sleep(wl);
 
 out:
        mutex_unlock(&wl->mutex);