aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/htc.h
diff options
context:
space:
mode:
authorSujith Manoharan <Sujith.Manoharan@atheros.com>2011-04-13 01:55:47 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-04-13 15:23:57 -0400
commit2c5d57f004673a9c8658e20b1fa3f992b5a10f70 (patch)
tree93576651f009819fa7b1160c9a2d567ee4284e94 /drivers/net/wireless/ath/ath9k/htc.h
parent729bd3ab460d3bb8236cc8f6fd0289201124112d (diff)
ath9k_htc: Add TX slots
Maintain a bitmap of slots for transmission and update the cookie field for every packet with the slot value. This value would be used for matching packets when TX completion processing is added. Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/htc.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index 0831ca3de95c..45cf75579438 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -271,6 +271,7 @@ struct ath9k_htc_tx {
271 u8 flags; 271 u8 flags;
272 int queued_cnt; 272 int queued_cnt;
273 struct sk_buff_head tx_queue; 273 struct sk_buff_head tx_queue;
274 DECLARE_BITMAP(tx_slot, MAX_TX_BUF_NUM);
274 spinlock_t tx_lock; 275 spinlock_t tx_lock;
275}; 276};
276 277
@@ -532,7 +533,7 @@ void ath9k_htc_stop_ani(struct ath9k_htc_priv *priv);
532int ath9k_tx_init(struct ath9k_htc_priv *priv); 533int ath9k_tx_init(struct ath9k_htc_priv *priv);
533void ath9k_tx_tasklet(unsigned long data); 534void ath9k_tx_tasklet(unsigned long data);
534int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, 535int ath9k_htc_tx_start(struct ath9k_htc_priv *priv,
535 struct sk_buff *skb, bool is_cab); 536 struct sk_buff *skb, u8 slot, bool is_cab);
536void ath9k_tx_cleanup(struct ath9k_htc_priv *priv); 537void ath9k_tx_cleanup(struct ath9k_htc_priv *priv);
537bool ath9k_htc_txq_setup(struct ath9k_htc_priv *priv, int subtype); 538bool ath9k_htc_txq_setup(struct ath9k_htc_priv *priv, int subtype);
538int ath9k_htc_cabq_setup(struct ath9k_htc_priv *priv); 539int ath9k_htc_cabq_setup(struct ath9k_htc_priv *priv);
@@ -541,6 +542,8 @@ int ath_htc_txq_update(struct ath9k_htc_priv *priv, int qnum,
541 struct ath9k_tx_queue_info *qinfo); 542 struct ath9k_tx_queue_info *qinfo);
542void ath9k_htc_check_stop_queues(struct ath9k_htc_priv *priv); 543void ath9k_htc_check_stop_queues(struct ath9k_htc_priv *priv);
543void ath9k_htc_check_wake_queues(struct ath9k_htc_priv *priv); 544void ath9k_htc_check_wake_queues(struct ath9k_htc_priv *priv);
545int ath9k_htc_tx_get_slot(struct ath9k_htc_priv *priv);
546void ath9k_htc_tx_clear_slot(struct ath9k_htc_priv *priv, int slot);
544 547
545int ath9k_rx_init(struct ath9k_htc_priv *priv); 548int ath9k_rx_init(struct ath9k_htc_priv *priv);
546void ath9k_rx_cleanup(struct ath9k_htc_priv *priv); 549void ath9k_rx_cleanup(struct ath9k_htc_priv *priv);