diff options
-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); |