diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2012-02-29 15:14:29 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:39 +0200 |
commit | 74ce5fb12b483f13663096a5d317c73cb99ea6da (patch) | |
tree | 56a62ad959156d092395e9b2f0653ceee4a21dd5 /drivers/staging/cw1200/sta.c | |
parent | da3d13a635111dc6e9d0f69ff55fc06ce329d0b7 (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.c | 7 |
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, |