summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/sta.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2012-02-29 15:14:29 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:39 +0200
commit74ce5fb12b483f13663096a5d317c73cb99ea6da (patch)
tree56a62ad959156d092395e9b2f0653ceee4a21dd5 /drivers/staging/cw1200/sta.c
parentda3d13a635111dc6e9d0f69ff55fc06ce329d0b7 (diff)
cw1200: Enable Block ACK only for 11n BSS.
Driver tried to setup Block ACK not taking in account 11n capabilities of the BSS. It even tried to setup Block ACK for legacy 11g BSSes. Patch checks HT status of the current connection before enabling Block ACK. ST-Ericsson ID: 369354 Change-Id: I11515c4d70dbb572b1e2da6749ba123c3ca71751 Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/36608 Reviewed-by: QABUILD Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Diffstat (limited to 'drivers/staging/cw1200/sta.c')
-rw-r--r--drivers/staging/cw1200/sta.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index dd227bec2a3..bac6fa6a6a2 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -1279,6 +1279,9 @@ void cw1200_join_work(struct work_struct *work)
&priv->join_timeout, 3 * HZ);
cw1200_update_listening(priv, false);
+ /* BlockACK policy will be updated when assoc is done */
+ WARN_ON(wsm_set_block_ack_policy(priv,
+ 0, 0));
if (wsm_join(priv, &join)) {
memset(&priv->join_bssid[0],
0, sizeof(priv->join_bssid));
@@ -1291,8 +1294,6 @@ void cw1200_join_work(struct work_struct *work)
cw1200_queue_requeue(queue, priv->pending_frame_id);
priv->join_status = CW1200_JOIN_STATUS_STA;
}
- WARN_ON(wsm_set_block_ack_policy(priv,
- priv->ba_tid_mask, priv->ba_tid_mask));
cw1200_update_filtering(priv);
}
mutex_unlock(&priv->conf_mutex);
@@ -1355,7 +1356,7 @@ void cw1200_unjoin_work(struct work_struct *work)
cancel_delayed_work_sync(&priv->connection_loss_work);
cw1200_update_listening(priv, priv->listening);
WARN_ON(wsm_set_block_ack_policy(priv,
- priv->ba_tid_mask, priv->ba_tid_mask));
+ 0, 0));
cw1200_update_filtering(priv);
priv->setbssparams_done = false;
memset(&priv->association_mode, 0,