diff options
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251_main.c | 12 |
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[] = { | |||
1143 | static int wl1251_op_conf_tx(struct ieee80211_hw *hw, u16 queue, | 1143 | static 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; |