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/sta.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/sta.c')
-rw-r--r-- | drivers/staging/cw1200/sta.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c index ecfdc7562f3..b6ea70f3418 100644 --- a/drivers/staging/cw1200/sta.c +++ b/drivers/staging/cw1200/sta.c @@ -136,7 +136,7 @@ void cw1200_stop(struct ieee80211_hw *dev) priv->join_status = CW1200_JOIN_STATUS_PASSIVE; for (i = 0; i < 4; i++) - cw1200_queue_clear(&priv->tx_queue[i]); + cw1200_queue_clear(&priv->tx_queue[i], priv); /* HACK! */ if (atomic_xchg(&priv->tx_lock, 1) != 1) @@ -215,8 +215,6 @@ void cw1200_remove_interface(struct ieee80211_hw *dev, } memset(priv->link_id_db, 0, sizeof(priv->link_id_db)); - memset(priv->tx_suspend_mask, 0, - sizeof(priv->tx_suspend_mask)); priv->sta_asleep_mask = 0; priv->enable_beacon = false; priv->tx_multicast = false; @@ -762,7 +760,7 @@ int __cw1200_flush(struct cw1200_common *priv, bool drop) */ if (drop) { for (i = 0; i < 4; ++i) - cw1200_queue_clear(&priv->tx_queue[i]); + cw1200_queue_clear(&priv->tx_queue[i], priv); } else { ret = wait_event_timeout( priv->tx_queue_stats.wait_link_id_empty, |