diff options
author | David S. Miller <davem@davemloft.net> | 2014-03-25 19:25:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-25 19:25:39 -0400 |
commit | 0fc31966035d7a540c011b6c967ce8eae1db121b (patch) | |
tree | 83f328a064cb123a10f5977c69ec3e28396970bc /drivers/net/wireless/ath/ath10k/htt.h | |
parent | 2c5f4f8422e8cf3dd15638226e964f2e13132267 (diff) | |
parent | 49c0ca17ee8dd3530f688052d4eb2ae6d3e55119 (diff) |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John W. Linville says:
====================
Please pull this batch of wireless updates intended for 3.15!
For the mac80211 bits, Johannes says:
"This has a whole bunch of bugfixes for things that went into -next
previously as well as some other bugfixes I didn't want to rush into
3.14 at this point. The rest of it is some cleanups and a few small
features, the biggest of which is probably Janusz's regulatory DFS CAC
time code."
For the Bluetooth bits, Gustavo says:
"One more pull request to 3.15. This is mostly and bug fix pull request, it
contains several fixes and clean up all over the tree, plus some small new
features."
For the NFC bits, Samuel says:
"This is the NFC pull request for 3.15. With this one we have:
- Support for ISO 15693 a.k.a. NFC vicinity a.k.a. Type 5 tags. ISO
15693 are long range (1 - 2 meters) vicinity tags/cards. The kernel
now supports those through the NFC netlink and digital APIs.
- Support for TI's trf7970a chipset. This chipset relies on the NFC
digital layer and the driver currently supports type 2, 4A and 5 tags.
- Support for NXP's pn544 secure firmare download. The pn544 C3 chipsets
relies on a different firmware download protocal than the C2 one. We
now support both and use the right one depending on the version we
detect at runtime.
- Support for 4A tags from the NFC digital layer.
- A bunch of cleanups and minor fixes from Axel Lin and Thierry Escande."
For the iwlwifi bits, Emmanuel says:
"We were sending a host command while the mutex wasn't held. This
led to hard-to-catch races."
And...
"I have a fix for a "merge damage" which is not really a merge
damage: it enables scheduled scan which has been disabled in
wireless.git. Since you merged wireless.git into wireless-next.git,
this can now be fixed in wireless-next.git.
Besides this, Alex made a workaround for a hardware bug. This fix
allows us to consume less power in S3. Arik and Eliad continue to
work on D0i3 which is a run-time power saving feature. Eliad also
contributes a few bits to the rate scaling logic to which Eyal adds his
own contribution. Avri dives deep in the power code - newer firmware
will allow to enable power save in newer scenarios. Johannes made a few
clean-ups. I have the regular amount of BT Coex boring stuff. I disable
uAPSD since we identified firmware bugs that cause packet loss. One
thing that do stand out is the udev event that we now send when the
FW asserts. I hope it will allow us to debug the FW more easily."
Also included is one last iwlwifi pull for a build breakage fix...
For the Atheros bits, Kalle says:
"Michal now did some optimisations and was able to improve throughput by
100 Mbps on our MIPS based AP135 platform. Chun-Yeow added some
workarounds to be able to better use ad-hoc mode. Ben improved log
messages and added support for MSDU chaining. And, as usual, also some
smaller fixes."
Beyond that...
Andrea Merello continues his rtl8180 refactoring, in preparation for
a long-awaited rtl8187 driver. We get a new driver (rsi) for the
RS9113 chip, from Fariya Fatima. And, of course, we get the usual
round of updates for ath9k, brcmfmac, mwifiex, wil6210, etc. as well.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htt.h')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/htt.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h index b93ae355bc08..654867fc1ae7 100644 --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | #include <linux/bug.h> | 21 | #include <linux/bug.h> |
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/dmapool.h> | ||
23 | 24 | ||
24 | #include "htc.h" | 25 | #include "htc.h" |
25 | #include "rx_desc.h" | 26 | #include "rx_desc.h" |
@@ -1181,11 +1182,20 @@ struct htt_rx_info { | |||
1181 | u32 info1; | 1182 | u32 info1; |
1182 | u32 info2; | 1183 | u32 info2; |
1183 | } rate; | 1184 | } rate; |
1185 | |||
1186 | u32 tsf; | ||
1184 | bool fcs_err; | 1187 | bool fcs_err; |
1185 | bool amsdu_more; | 1188 | bool amsdu_more; |
1186 | bool mic_err; | 1189 | bool mic_err; |
1187 | }; | 1190 | }; |
1188 | 1191 | ||
1192 | struct ath10k_htt_txbuf { | ||
1193 | struct htt_data_tx_desc_frag frags[2]; | ||
1194 | struct ath10k_htc_hdr htc_hdr; | ||
1195 | struct htt_cmd_hdr cmd_hdr; | ||
1196 | struct htt_data_tx_desc cmd_tx; | ||
1197 | } __packed; | ||
1198 | |||
1189 | struct ath10k_htt { | 1199 | struct ath10k_htt { |
1190 | struct ath10k *ar; | 1200 | struct ath10k *ar; |
1191 | enum ath10k_htc_ep_id eid; | 1201 | enum ath10k_htc_ep_id eid; |
@@ -1267,11 +1277,18 @@ struct ath10k_htt { | |||
1267 | struct sk_buff **pending_tx; | 1277 | struct sk_buff **pending_tx; |
1268 | unsigned long *used_msdu_ids; /* bitmap */ | 1278 | unsigned long *used_msdu_ids; /* bitmap */ |
1269 | wait_queue_head_t empty_tx_wq; | 1279 | wait_queue_head_t empty_tx_wq; |
1280 | struct dma_pool *tx_pool; | ||
1270 | 1281 | ||
1271 | /* set if host-fw communication goes haywire | 1282 | /* set if host-fw communication goes haywire |
1272 | * used to avoid further failures */ | 1283 | * used to avoid further failures */ |
1273 | bool rx_confused; | 1284 | bool rx_confused; |
1274 | struct tasklet_struct rx_replenish_task; | 1285 | struct tasklet_struct rx_replenish_task; |
1286 | |||
1287 | /* This is used to group tx/rx completions separately and process them | ||
1288 | * in batches to reduce cache stalls */ | ||
1289 | struct tasklet_struct txrx_compl_task; | ||
1290 | struct sk_buff_head tx_compl_q; | ||
1291 | struct sk_buff_head rx_compl_q; | ||
1275 | }; | 1292 | }; |
1276 | 1293 | ||
1277 | #define RX_HTT_HDR_STATUS_LEN 64 | 1294 | #define RX_HTT_HDR_STATUS_LEN 64 |
@@ -1343,4 +1360,5 @@ int ath10k_htt_tx_alloc_msdu_id(struct ath10k_htt *htt); | |||
1343 | void ath10k_htt_tx_free_msdu_id(struct ath10k_htt *htt, u16 msdu_id); | 1360 | void ath10k_htt_tx_free_msdu_id(struct ath10k_htt *htt, u16 msdu_id); |
1344 | int ath10k_htt_mgmt_tx(struct ath10k_htt *htt, struct sk_buff *); | 1361 | int ath10k_htt_mgmt_tx(struct ath10k_htt *htt, struct sk_buff *); |
1345 | int ath10k_htt_tx(struct ath10k_htt *htt, struct sk_buff *); | 1362 | int ath10k_htt_tx(struct ath10k_htt *htt, struct sk_buff *); |
1363 | |||
1346 | #endif | 1364 | #endif |