summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/sta_rx.c
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2014-03-07 19:41:31 -0800
committerJohn W. Linville <linville@tuxdriver.com>2014-03-14 14:49:14 -0400
commit4c9f9fb29b3cdfa751c8ccf984a84fbe9e643b91 (patch)
tree862f31d509422e595a289016c89fcac1332e2bd2 /drivers/net/wireless/mwifiex/sta_rx.c
parent5e6e43eb20639aa8003794c076677c188ac01b3a (diff)
downloadblackbird-op-linux-4c9f9fb29b3cdfa751c8ccf984a84fbe9e643b91.tar.gz
blackbird-op-linux-4c9f9fb29b3cdfa751c8ccf984a84fbe9e643b91.zip
mwifiex: add AMSDU inside AMPDU support
Currently AMPDU aggregation is preferred over AMSDU. AMSDU aggregation is performed only if AMPDU streams in firmware are full. This patch adds simultaneous AMSDU and AMPDU aggregation support. This mechanism helps to improve throughput. AMSDU is enabled only for 8897 chipsets which supports 4K transmit buffer. User can disable AMSDU using 'disable_tx_amsdu' module parameter. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_rx.c')
-rw-r--r--drivers/net/wireless/mwifiex/sta_rx.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_rx.c b/drivers/net/wireless/mwifiex/sta_rx.c
index b6aa958bd6e4..ed26387eccf5 100644
--- a/drivers/net/wireless/mwifiex/sta_rx.c
+++ b/drivers/net/wireless/mwifiex/sta_rx.c
@@ -201,26 +201,7 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_private *priv,
return ret;
}
- if (rx_pkt_type == PKT_TYPE_AMSDU) {
- struct sk_buff_head list;
- struct sk_buff *rx_skb;
-
- __skb_queue_head_init(&list);
-
- skb_pull(skb, rx_pkt_offset);
- skb_trim(skb, rx_pkt_length);
-
- ieee80211_amsdu_to_8023s(skb, &list, priv->curr_addr,
- priv->wdev->iftype, 0, false);
-
- while (!skb_queue_empty(&list)) {
- rx_skb = __skb_dequeue(&list);
- ret = mwifiex_recv_packet(priv, rx_skb);
- if (ret == -1)
- dev_err(adapter->dev, "Rx of A-MSDU failed");
- }
- return 0;
- } else if (rx_pkt_type == PKT_TYPE_MGMT) {
+ if (rx_pkt_type == PKT_TYPE_MGMT) {
ret = mwifiex_process_mgmt_packet(priv, skb);
if (ret)
dev_err(adapter->dev, "Rx of mgmt packet failed");
OpenPOWER on IntegriCloud