diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-10-05 09:29:01 +0200 |
---|---|---|
committer | Philippe LANGLAIS <philippe.langlais@stericsson.com> | 2011-10-13 10:23:25 +0200 |
commit | 5a3348f06558026c5c842112b83674e00903064c (patch) | |
tree | 1bf2ffa5c77ad60ee487364a62978cbd08b818b0 /drivers/staging/cw1200/wsm.c | |
parent | 868040fa7b15aa1adf7af925f89dfa6c3b0b7a3c (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.c | 5 |
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; |