aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKalle Valo <kalle.valo@nokia.com>2010-03-18 06:26:38 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-03-23 16:50:23 -0400
commit4695dc917d9ec7a38cb4f91fceb2b78aaec1f945 (patch)
tree7a7a9a6afee0a3f86cb41b1d7853d7e2f6f855b0 /drivers
parent522ac25048676b2141d0560841654323339c0cbb (diff)
wl1271: enable U-APSD
wl1271 supports U-APSD similarly as wl1251, so let's enable it. 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: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index 2a2e5841a0e0..037a4f4036fd 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -1781,6 +1781,7 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1781 const struct ieee80211_tx_queue_params *params) 1781 const struct ieee80211_tx_queue_params *params)
1782{ 1782{
1783 struct wl1271 *wl = hw->priv; 1783 struct wl1271 *wl = hw->priv;
1784 u8 ps_scheme;
1784 int ret; 1785 int ret;
1785 1786
1786 mutex_lock(&wl->mutex); 1787 mutex_lock(&wl->mutex);
@@ -1798,11 +1799,15 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1798 if (ret < 0) 1799 if (ret < 0)
1799 goto out_sleep; 1800 goto out_sleep;
1800 1801
1802 if (params->uapsd)
1803 ps_scheme = CONF_PS_SCHEME_UPSD_TRIGGER;
1804 else
1805 ps_scheme = CONF_PS_SCHEME_LEGACY;
1806
1801 ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue), 1807 ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue),
1802 CONF_CHANNEL_TYPE_EDCF, 1808 CONF_CHANNEL_TYPE_EDCF,
1803 wl1271_tx_get_queue(queue), 1809 wl1271_tx_get_queue(queue),
1804 CONF_PS_SCHEME_LEGACY, 1810 ps_scheme, CONF_ACK_POLICY_LEGACY, 0, 0);
1805 CONF_ACK_POLICY_LEGACY, 0, 0);
1806 if (ret < 0) 1811 if (ret < 0)
1807 goto out_sleep; 1812 goto out_sleep;
1808 1813
@@ -2083,6 +2088,7 @@ int wl1271_init_ieee80211(struct wl1271 *wl)
2083 IEEE80211_HW_NOISE_DBM | 2088 IEEE80211_HW_NOISE_DBM |
2084 IEEE80211_HW_BEACON_FILTER | 2089 IEEE80211_HW_BEACON_FILTER |
2085 IEEE80211_HW_SUPPORTS_PS | 2090 IEEE80211_HW_SUPPORTS_PS |
2091 IEEE80211_HW_SUPPORTS_UAPSD |
2086 IEEE80211_HW_HAS_RATE_CONTROL; 2092 IEEE80211_HW_HAS_RATE_CONTROL;
2087 2093
2088 wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | 2094 wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |