aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/carl9170/fwdesc.h
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@googlemail.com>2010-09-28 17:00:59 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-05 13:35:21 -0400
commit5c895691944862e782c285a871f5d3466797b4ef (patch)
tree7d49f76b23d23253b2c54a1794beb0676c66c615 /drivers/net/wireless/ath/carl9170/fwdesc.h
parent85416a4fa193754ef36e12b20bb02fe661cb7f17 (diff)
carl9170: support firmware-based rx filter
The hardware rx-filter was essentially disabled, because of a serve, yet unidentifiable problem with iwlagn. Due to these circumstances the driver and mac80211 were left with the job of filtering. This is very unfortunate and has proven to be expensive in terms of latency, memory and load. Therefore the new 1.8.8.3 firmware introduces a flexible filtering infrastructure which allows the driver to offload some of the checks (FCS & PLCP crc check, RA match, control frame filter, etc...) whenever possible. Note: This patch also includes all changes to the shared headers files since the inclusion. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/carl9170/fwdesc.h')
-rw-r--r--drivers/net/wireless/ath/carl9170/fwdesc.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/carl9170/fwdesc.h b/drivers/net/wireless/ath/carl9170/fwdesc.h
index 7cd811708fe..71f3821f605 100644
--- a/drivers/net/wireless/ath/carl9170/fwdesc.h
+++ b/drivers/net/wireless/ath/carl9170/fwdesc.h
@@ -66,6 +66,9 @@ enum carl9170fw_feature_list {
66 /* Firmware PSM support | CARL9170_CMD_PSM */ 66 /* Firmware PSM support | CARL9170_CMD_PSM */
67 CARL9170FW_PSM, 67 CARL9170FW_PSM,
68 68
69 /* Firmware RX filter | CARL9170_CMD_RX_FILTER */
70 CARL9170FW_RX_FILTER,
71
69 /* KEEP LAST */ 72 /* KEEP LAST */
70 __CARL9170FW_FEATURE_NUM 73 __CARL9170FW_FEATURE_NUM
71}; 74};
@@ -142,7 +145,7 @@ struct carl9170fw_fix_desc {
142 (sizeof(struct carl9170fw_fix_desc)) 145 (sizeof(struct carl9170fw_fix_desc))
143 146
144#define CARL9170FW_DBG_DESC_MIN_VER 1 147#define CARL9170FW_DBG_DESC_MIN_VER 1
145#define CARL9170FW_DBG_DESC_CUR_VER 2 148#define CARL9170FW_DBG_DESC_CUR_VER 3
146struct carl9170fw_dbg_desc { 149struct carl9170fw_dbg_desc {
147 struct carl9170fw_desc_head head; 150 struct carl9170fw_desc_head head;
148 151
@@ -150,6 +153,7 @@ struct carl9170fw_dbg_desc {
150 __le32 counter_addr; 153 __le32 counter_addr;
151 __le32 rx_total_addr; 154 __le32 rx_total_addr;
152 __le32 rx_overrun_addr; 155 __le32 rx_overrun_addr;
156 __le32 rx_filter;
153 157
154 /* Put your debugging definitions here */ 158 /* Put your debugging definitions here */
155} __packed; 159} __packed;