aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/wmi.h
diff options
context:
space:
mode:
authorSujith Manoharan <Sujith.Manoharan@atheros.com>2011-04-13 01:56:39 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-04-13 15:24:30 -0400
commit859c3ca1e4608615788dc6cbc199210fe4b5efa2 (patch)
tree523b8939326f1c8605b037201142f73816cdee37 /drivers/net/wireless/ath/ath9k/wmi.h
parentc4d04186c7023d54445b695da226b3e98e0a55f9 (diff)
ath9k_htc: Add a timer to cleanup WMI events
Occasionally, a WMI event would arrive ahead of the TX URB completion handler. Discarding these events would exhaust the available TX slots, so handle them by running a timer cleaning up such events. Also, timeout packets for which TX completion events have not arrived. 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/wmi.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/wmi.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/wmi.h b/drivers/net/wireless/ath/ath9k/wmi.h
index 44b17385374..310d94eaed1 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.h
+++ b/drivers/net/wireless/ath/ath9k/wmi.h
@@ -130,6 +130,12 @@ struct register_write {
130 __be32 val; 130 __be32 val;
131}; 131};
132 132
133struct ath9k_htc_tx_event {
134 int count;
135 struct __wmi_event_txstatus txs;
136 struct list_head list;
137};
138
133struct wmi { 139struct wmi {
134 struct ath9k_htc_priv *drv_priv; 140 struct ath9k_htc_priv *drv_priv;
135 struct htc_target *htc; 141 struct htc_target *htc;
@@ -144,6 +150,9 @@ struct wmi {
144 u32 cmd_rsp_len; 150 u32 cmd_rsp_len;
145 bool stopped; 151 bool stopped;
146 152
153 struct list_head pending_tx_events;
154 spinlock_t event_lock;
155
147 spinlock_t wmi_lock; 156 spinlock_t wmi_lock;
148 157
149 atomic_t mwrite_cnt; 158 atomic_t mwrite_cnt;