aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKalle Valo <kalle.valo@nokia.com>2010-02-18 06:25:47 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-02-19 15:52:45 -0500
commitc82c1dde3024715c4cd8b6dd8cc7c75d8d7d93c8 (patch)
treeb67a673696c8fec1adb9686e4d113e12e065866d /drivers
parente2e77b5ffb14211306ee093f01230f6ec69fab30 (diff)
wl1271: wakeup chip in op_conf_tx()
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index c7f5191e7dbf..9de7df76f53b 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -1738,11 +1738,15 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1738 1738
1739 wl1271_debug(DEBUG_MAC80211, "mac80211 conf tx %d", queue); 1739 wl1271_debug(DEBUG_MAC80211, "mac80211 conf tx %d", queue);
1740 1740
1741 ret = wl1271_ps_elp_wakeup(wl, false);
1742 if (ret < 0)
1743 goto out;
1744
1741 ret = wl1271_acx_ac_cfg(wl, wl1271_tx_get_queue(queue), 1745 ret = wl1271_acx_ac_cfg(wl, wl1271_tx_get_queue(queue),
1742 params->cw_min, params->cw_max, 1746 params->cw_min, params->cw_max,
1743 params->aifs, params->txop); 1747 params->aifs, params->txop);
1744 if (ret < 0) 1748 if (ret < 0)
1745 goto out; 1749 goto out_sleep;
1746 1750
1747 ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue), 1751 ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue),
1748 CONF_CHANNEL_TYPE_EDCF, 1752 CONF_CHANNEL_TYPE_EDCF,
@@ -1750,7 +1754,10 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1750 CONF_PS_SCHEME_LEGACY_PSPOLL, 1754 CONF_PS_SCHEME_LEGACY_PSPOLL,
1751 CONF_ACK_POLICY_LEGACY, 0, 0); 1755 CONF_ACK_POLICY_LEGACY, 0, 0);
1752 if (ret < 0) 1756 if (ret < 0)
1753 goto out; 1757 goto out_sleep;
1758
1759out_sleep:
1760 wl1271_ps_elp_sleep(wl);
1754 1761
1755out: 1762out:
1756 mutex_unlock(&wl->mutex); 1763 mutex_unlock(&wl->mutex);