summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/ap.c
diff options
context:
space:
mode:
authorBartosz Markowski <bartosz.markowski@tieto.com>2011-09-27 08:34:33 +0200
committerPhilippe LANGLAIS <philippe.langlais@stericsson.com>2011-10-13 10:19:11 +0200
commit5e666fdc2c0bf1fc6157ca6b66a6b5af809b9d2b (patch)
treef0e73f8a78ae8df11e9901f85b23e8ecf9877e6d /drivers/staging/cw1200/ap.c
parent4716cbebb6bb0f839605f68bdec0f1558d69a728 (diff)
cw1200: Adaptation to U-APSD/AP support as on Thu, Sep 22, 2011
New mac80211 API for reporting buffered frames in SoftAP mode is supported. SoftAP stability is significantly improved by that. ST-Ericsson ID: 355584 Change-Id: I0f12c71fff05f7f6b79cd508181b7daab6838c7e Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31927 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33530 Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/ap.c')
-rwxr-xr-xdrivers/staging/cw1200/ap.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c
index aabca5ca06e..f35eef5fae6 100755
--- a/drivers/staging/cw1200/ap.c
+++ b/drivers/staging/cw1200/ap.c
@@ -84,30 +84,6 @@ void cw1200_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif,
enum sta_notify_cmd notify_cmd,
struct ieee80211_sta *sta)
{
- struct cw1200_common *priv = dev->priv;
- struct cw1200_sta_priv *sta_priv =
- (struct cw1200_sta_priv *)&sta->drv_priv;
- u32 bit = BIT(sta_priv->link_id);
-
- spin_lock_bh(&priv->buffered_multicasts_lock);
- switch (notify_cmd) {
- case STA_NOTIFY_SLEEP:
- if (priv->buffered_multicasts &&
- !priv->sta_asleep_mask)
- queue_work(priv->workqueue,
- &priv->multicast_start_work);
- priv->sta_asleep_mask |= bit;
- break;
- case STA_NOTIFY_AWAKE:
- priv->sta_asleep_mask &= ~bit;
- if (priv->tx_multicast &&
- !priv->sta_asleep_mask)
- queue_work(priv->workqueue,
- &priv->multicast_stop_work);
- cw1200_bh_wakeup(priv);
- break;
- }
- spin_unlock_bh(&priv->buffered_multicasts_lock);
}
static void __cw1200_ps_notify(struct cw1200_common *priv,
@@ -901,6 +877,7 @@ int cw1200_alloc_link_id(struct cw1200_common *priv, const u8 *mac)
ret);
priv->link_id_db[ret - 1].status = CW1200_LINK_RESERVE;
memcpy(&priv->link_id_db[ret - 1].mac, mac, ETH_ALEN);
+ memset(&priv->link_id_db[ret - 1].buffered, 0, CW1200_MAX_TID);
wsm_lock_tx_async(priv);
if (queue_work(priv->workqueue, &priv->link_id_work) <= 0)
wsm_unlock_tx(priv);