summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/sta.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-05-30 08:03:34 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:17 +0200
commite475ca203beafd81adec4ff8693ab6691e81122e (patch)
tree99b6c9ab3a4f7d4fbc23dbf5f8dec076e25e5a7d /drivers/staging/cw1200/sta.c
parent9872c88ff6979c5b1454bf2bcd96c5ec7a4ff76d (diff)
cw1200: throughput optimization.
* An expencive workaround against a bug in really old hardware is removed. * IEEE80211_HW_AMPDU_AGGREGATION is set in the device capability flags. * Michael MIC is stripped by the driver: avoiding double-check by the mac80211 stack. Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Change-Id: Iaf07e3f675685208c1c66a5faa6219ccbc893238 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/25614 Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/sta.c')
-rw-r--r--drivers/staging/cw1200/sta.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index 5f42e25c2fa..5f30cb4c338 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -696,13 +696,20 @@ void cw1200_rx_cb(struct cw1200_common *priv,
hdr->signal = (s8)arg->rcpiRssi;
hdr->antenna = 0;
- if (arg->flags & 0x07)
+ if (WSM_RX_STATUS_ENCRYPTION(arg->flags)) {
hdr->flag |= RX_FLAG_DECRYPTED;
- if (arg->flags & BIT(14))
+ if (!arg->status &&
+ (WSM_RX_STATUS_ENCRYPTION(arg->flags) ==
+ WSM_RX_STATUS_TKIP)) {
+ hdr->flag |= RX_FLAG_MMIC_STRIPPED;
+ skb_trim(skb, skb->len - 8 /*MICHAEL_MIC_LEN*/);
+ }
+ }
+ if (arg->flags & WSM_RX_STATUS_HT)
hdr->flag |= RX_FLAG_HT;
#if 0
/* Wrong: ACK could be disable for this ACL */
- if (arg->flags & BIT(16))
+ if (arg->flags & WSM_RX_STATUS_ADDRESS1)
priv->last_activity_time = jiffies;
#endif