diff options
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 |