aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2011-01-10 02:11:52 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-21 15:34:17 -0500
commit60f2d1d506195803fa6e1dcf3972637b740fdd60 (patch)
tree583cf2f90cfe193f502c6ad8f4ab0e5135611325 /drivers/net/wireless/ath/ath9k/ath9k.h
parent71e025a5a630681ad8b37d4426a994d199976ec9 (diff)
ath9k: Restart xmit logic in xmit watchdog.
The system can get into a state where the xmit queue is stopped, but there are no packets pending, so the queue will not be restarted. Add logic to the xmit watchdog to attempt to restart the xmit logic if this situation is detected. Example 'dmesg' output: ath: txq: f4e723e0 axq_qnum: 2, mac80211_qnum: 2 axq_link: f4e996c8 pending frames: 1 axq_acq empty: 1 stopped: 0 axq_depth: 0 Attempting to restart tx logic. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index d4640117fa8c..dab0271f1c1a 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -184,7 +184,8 @@ enum ATH_AGGR_STATUS {
184 184
185#define ATH_TXFIFO_DEPTH 8 185#define ATH_TXFIFO_DEPTH 8
186struct ath_txq { 186struct ath_txq {
187 u32 axq_qnum; 187 int mac80211_qnum; /* mac80211 queue number, -1 means not mac80211 Q */
188 u32 axq_qnum; /* ath9k hardware queue number */
188 u32 *axq_link; 189 u32 *axq_link;
189 struct list_head axq_q; 190 struct list_head axq_q;
190 spinlock_t axq_lock; 191 spinlock_t axq_lock;
@@ -280,6 +281,11 @@ struct ath_tx_control {
280#define ATH_TX_XRETRY 0x02 281#define ATH_TX_XRETRY 0x02
281#define ATH_TX_BAR 0x04 282#define ATH_TX_BAR 0x04
282 283
284/**
285 * @txq_map: Index is mac80211 queue number. This is
286 * not necessarily the same as the hardware queue number
287 * (axq_qnum).
288 */
283struct ath_tx { 289struct ath_tx {
284 u16 seq_no; 290 u16 seq_no;
285 u32 txqsetup; 291 u32 txqsetup;
@@ -643,6 +649,7 @@ struct ath_softc {
643 struct ath9k_debug debug; 649 struct ath9k_debug debug;
644 spinlock_t nodes_lock; 650 spinlock_t nodes_lock;
645 struct list_head nodes; /* basically, stations */ 651 struct list_head nodes; /* basically, stations */
652 unsigned int tx_complete_poll_work_seen;
646#endif 653#endif
647 struct ath_beacon_config cur_beacon_conf; 654 struct ath_beacon_config cur_beacon_conf;
648 struct delayed_work tx_complete_work; 655 struct delayed_work tx_complete_work;