summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/queue.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/queue.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/queue.c')
-rw-r--r--drivers/staging/cw1200/queue.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/staging/cw1200/queue.c b/drivers/staging/cw1200/queue.c
index 2ba26f32178..ef7d48488bd 100644
--- a/drivers/staging/cw1200/queue.c
+++ b/drivers/staging/cw1200/queue.c
@@ -29,7 +29,7 @@
u8 generation;
u8 link_id;
u8 raw_link_id;
- u8 reserved[1];
+ u8 tid;
};
static inline void __cw1200_queue_lock(struct cw1200_queue *queue,
@@ -200,7 +200,8 @@ size_t cw1200_queue_get_num_queued(struct cw1200_queue *queue,
}
int cw1200_queue_put(struct cw1200_queue *queue, struct cw1200_common *priv,
- struct sk_buff *skb, struct tx_info *txinfo, u8 raw_link_id)
+ struct sk_buff *skb, struct tx_info *txinfo,
+ u8 raw_link_id, u8 tid)
{
int ret;
struct wsm_tx *wsm;
@@ -230,6 +231,7 @@ int cw1200_queue_put(struct cw1200_queue *queue, struct cw1200_common *priv,
wsm->packetID = __cpu_to_le32(item->packetID);
item->link_id = link_id;
item->raw_link_id = raw_link_id;
+ item->tid = tid;
++queue->num_queued;
++queue->link_map_cache[link_id];
@@ -409,7 +411,7 @@ int cw1200_queue_remove(struct cw1200_queue *queue, struct cw1200_common *priv,
}
int cw1200_queue_get_skb(struct cw1200_queue *queue, u32 packetID,
- struct sk_buff **skb)
+ struct sk_buff **skb, int *tid)
{
int ret = 0;
u8 queue_generation, queue_id, item_generation, item_id;
@@ -431,6 +433,7 @@ int cw1200_queue_get_skb(struct cw1200_queue *queue, u32 packetID,
ret = -ENOENT;
} else {
*skb = item->skb;
+ *tid = item->tid;
item->skb = NULL;
}
spin_unlock_bh(&queue->lock);