diff options
author | Kalle Valo <kalle.valo@nokia.com> | 2010-03-18 06:26:38 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-03-23 16:50:23 -0400 |
commit | 4695dc917d9ec7a38cb4f91fceb2b78aaec1f945 (patch) | |
tree | 7a7a9a6afee0a3f86cb41b1d7853d7e2f6f855b0 /drivers | |
parent | 522ac25048676b2141d0560841654323339c0cbb (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.c | 10 |
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) | |