aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_main.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c
index d469d3dcd054..595f0f94d16e 100644
--- a/drivers/net/wireless/wl12xx/wl1251_main.c
+++ b/drivers/net/wireless/wl12xx/wl1251_main.c
@@ -1143,6 +1143,7 @@ static struct ieee80211_channel wl1251_channels[] = {
1143static int wl1251_op_conf_tx(struct ieee80211_hw *hw, u16 queue, 1143static int wl1251_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1144 const struct ieee80211_tx_queue_params *params) 1144 const struct ieee80211_tx_queue_params *params)
1145{ 1145{
1146 enum wl1251_acx_ps_scheme ps_scheme;
1146 struct wl1251 *wl = hw->priv; 1147 struct wl1251 *wl = hw->priv;
1147 int ret; 1148 int ret;
1148 1149
@@ -1160,10 +1161,14 @@ static int wl1251_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
1160 if (ret < 0) 1161 if (ret < 0)
1161 goto out_sleep; 1162 goto out_sleep;
1162 1163
1164 if (params->uapsd)
1165 ps_scheme = WL1251_ACX_PS_SCHEME_UPSD_TRIGGER;
1166 else
1167 ps_scheme = WL1251_ACX_PS_SCHEME_LEGACY;
1168
1163 ret = wl1251_acx_tid_cfg(wl, wl1251_tx_get_queue(queue), 1169 ret = wl1251_acx_tid_cfg(wl, wl1251_tx_get_queue(queue),
1164 CHANNEL_TYPE_EDCF, 1170 CHANNEL_TYPE_EDCF,
1165 wl1251_tx_get_queue(queue), 1171 wl1251_tx_get_queue(queue), ps_scheme,
1166 WL1251_ACX_PS_SCHEME_LEGACY,
1167 WL1251_ACX_ACK_POLICY_LEGACY); 1172 WL1251_ACX_ACK_POLICY_LEGACY);
1168 if (ret < 0) 1173 if (ret < 0)
1169 goto out_sleep; 1174 goto out_sleep;
@@ -1237,7 +1242,8 @@ int wl1251_init_ieee80211(struct wl1251 *wl)
1237 wl->hw->flags = IEEE80211_HW_SIGNAL_DBM | 1242 wl->hw->flags = IEEE80211_HW_SIGNAL_DBM |
1238 IEEE80211_HW_NOISE_DBM | 1243 IEEE80211_HW_NOISE_DBM |
1239 IEEE80211_HW_SUPPORTS_PS | 1244 IEEE80211_HW_SUPPORTS_PS |
1240 IEEE80211_HW_BEACON_FILTER; 1245 IEEE80211_HW_BEACON_FILTER |
1246 IEEE80211_HW_SUPPORTS_UAPSD;
1241 1247
1242 wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); 1248 wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
1243 wl->hw->wiphy->max_scan_ssids = 1; 1249 wl->hw->wiphy->max_scan_ssids = 1;