summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/wsm.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-10-05 09:29:01 +0200
committerPhilippe LANGLAIS <philippe.langlais@stericsson.com>2011-10-13 10:23:25 +0200
commit5a3348f06558026c5c842112b83674e00903064c (patch)
tree1bf2ffa5c77ad60ee487364a62978cbd08b818b0 /drivers/staging/cw1200/wsm.c
parent868040fa7b15aa1adf7af925f89dfa6c3b0b7a3c (diff)
cw1200: AP PS refactoring.
* buffered_multicasts_lock was renamed to ps_state_lock. Previous name was quite confusive. * Per-STA rx_queue was created for early RX-ed frames. Not that we really need these frames, but PM status they are holding is important. * priv->tx_suspend_mask was removed, driver is not using it. It was intended for UAPSD and is not needed in current implementation on mac80211. * Fix: cw1200_queue_unlock() was not called from cw1200_queue_clear() when queue was internally locked. ST-Ericsson ID: 360749 Change-Id: I61346db485d34f761d80af786b716d8c73e8b600 Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33541 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/wsm.c')
-rw-r--r--drivers/staging/cw1200/wsm.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/staging/cw1200/wsm.c b/drivers/staging/cw1200/wsm.c
index 415fbcbee59..d0bcffa1654 100644
--- a/drivers/staging/cw1200/wsm.c
+++ b/drivers/staging/cw1200/wsm.c
@@ -1555,7 +1555,6 @@ static int wsm_get_tx_queue_and_mask(struct cw1200_common *priv,
tx_allowed_mask = ~priv->sta_asleep_mask;
tx_allowed_mask |= BIT(CW1200_LINK_ID_UAPSD);
if (priv->sta_asleep_mask) {
- tx_allowed_mask |= ~priv->tx_suspend_mask[i];
tx_allowed_mask |= priv->pspoll_mask;
tx_allowed_mask &= ~BIT(CW1200_LINK_ID_AFTER_DTIM);
} else {
@@ -1607,7 +1606,7 @@ int wsm_get_tx(struct cw1200_common *priv, u8 **data,
if (atomic_add_return(0, &priv->tx_lock))
break;
- spin_lock_bh(&priv->buffered_multicasts_lock);
+ spin_lock_bh(&priv->ps_state_lock);
ret = wsm_get_tx_queue_and_mask(priv, &queue,
&tx_allowed_mask, &more);
@@ -1622,7 +1621,7 @@ int wsm_get_tx(struct cw1200_common *priv, u8 **data,
&priv->multicast_stop_work);
}
- spin_unlock_bh(&priv->buffered_multicasts_lock);
+ spin_unlock_bh(&priv->ps_state_lock);
if (ret)
break;