diff options
author | Kalle Valo <kalle.valo@nokia.com> | 2010-02-18 06:25:47 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-02-19 15:52:45 -0500 |
commit | c82c1dde3024715c4cd8b6dd8cc7c75d8d7d93c8 (patch) | |
tree | b67a673696c8fec1adb9686e4d113e12e065866d /drivers | |
parent | e2e77b5ffb14211306ee093f01230f6ec69fab30 (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.c | 11 |
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 | |||
1759 | out_sleep: | ||
1760 | wl1271_ps_elp_sleep(wl); | ||
1754 | 1761 | ||
1755 | out: | 1762 | out: |
1756 | mutex_unlock(&wl->mutex); | 1763 | mutex_unlock(&wl->mutex); |