summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/wsm.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/wsm.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/wsm.c')
-rw-r--r--drivers/staging/cw1200/wsm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/staging/cw1200/wsm.c b/drivers/staging/cw1200/wsm.c
index b05548f34a8..69672992982 100644
--- a/drivers/staging/cw1200/wsm.c
+++ b/drivers/staging/cw1200/wsm.c
@@ -1395,6 +1395,7 @@ static bool wsm_handle_tx_data(struct cw1200_common *priv,
* probe responses.
* The easiest way to get it back is to convert
* probe request into WSM start_scan command. */
+ int tid;
int rate_id = (wsm->flags >> 4) & 0x07;
struct cw1200_queue *queue =
&priv->tx_queue[cw1200_queue_get_queue_id(
@@ -1405,7 +1406,7 @@ static bool wsm_handle_tx_data(struct cw1200_common *priv,
BUG_ON(priv->scan.probe_skb);
BUG_ON(cw1200_queue_get_skb(queue,
wsm->packetID,
- &priv->scan.probe_skb));
+ &priv->scan.probe_skb, &tid));
BUG_ON(cw1200_queue_remove(queue, priv,
wsm->packetID));
/* Release used TX rate policy */
@@ -1421,12 +1422,15 @@ static bool wsm_handle_tx_data(struct cw1200_common *priv,
* We are dropping everything except AUTH in non-joined mode. */
struct sk_buff *skb;
int rate_id = (wsm->flags >> 4) & 0x07;
+ int tid = 8;
struct cw1200_queue *queue =
&priv->tx_queue[cw1200_queue_get_queue_id(
wsm->packetID)];
wsm_printk(KERN_DEBUG "[WSM] Drop frame (0x%.4X):"
" not joined.\n", fctl);
- BUG_ON(cw1200_queue_get_skb(queue, wsm->packetID, &skb));
+ BUG_ON(cw1200_queue_get_skb(queue, wsm->packetID, &skb, &tid));
+ skb_pull(skb, sizeof(struct wsm_tx));
+ cw1200_notify_buffered_tx(priv, skb, link_id, tid);
BUG_ON(cw1200_queue_remove(queue, priv, wsm->packetID));
/* Release used TX rate policy */
tx_policy_put(priv, rate_id);