aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-05-30 08:03:34 +0200
committerPhilippe LANGLAIS <philippe.langlais@stericsson.com>2011-06-22 11:28:27 +0200
commitb5114b597264e71b4a2f4b7a682c21f086cc11a3 (patch)
tree0d802634a66fb8d0b767c695ed088b8cf2bc3be0 /drivers
parentfb69f73a604b26638de2f6ffb110cc35a383a44a (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')
-rw-r--r--drivers/staging/cw1200/bh.c8
-rw-r--r--drivers/staging/cw1200/main.c3
-rw-r--r--drivers/staging/cw1200/sta.c13
3 files changed, 13 insertions, 11 deletions
diff --git a/drivers/staging/cw1200/bh.c b/drivers/staging/cw1200/bh.c
index 5f92caa2708..cc27e8b4aa5 100644
--- a/drivers/staging/cw1200/bh.c
+++ b/drivers/staging/cw1200/bh.c
@@ -359,14 +359,6 @@ rx:
}
read_len = 0;
-
- {
- /* HACK!!! */
- /* Read CONFIG Register Value - HW BUG */
- u32 val32;
- WARN_ON(cw1200_reg_read_32(priv,
- ST90TDS_CONFIG_REG_ID, &val32));
- }
}
tx:
diff --git a/drivers/staging/cw1200/main.c b/drivers/staging/cw1200/main.c
index 047a7422767..da61ba165cf 100644
--- a/drivers/staging/cw1200/main.c
+++ b/drivers/staging/cw1200/main.c
@@ -246,6 +246,9 @@ struct ieee80211_hw *cw1200_init_common(size_t priv_data_len)
/* IEEE80211_HW_SUPPORTS_UAPSD | */
IEEE80211_HW_CONNECTION_MONITOR |
IEEE80211_HW_SUPPORTS_CQM_RSSI |
+#if defined(CONFIG_CW1200_HT_SUPPORT)
+ IEEE80211_HW_AMPDU_AGGREGATION |
+#endif
#if defined(CONFIG_CW1200_USE_STE_EXTENSIONS)
IEEE80211_HW_SUPPORTS_CQM_BEACON_MISS |
IEEE80211_HW_SUPPORTS_CQM_TX_FAIL |
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