summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k/wmi.h
diff options
context:
space:
mode:
authorSujith Manoharan <Sujith.Manoharan@atheros.com>2011-04-13 09:56:39 +0400
committerJohn W. Linville <linville@tuxdriver.com>2011-04-13 23:24:30 +0400
commit859c3ca1e4608615788dc6cbc199210fe4b5efa2 (patch)
tree523b8939326f1c8605b037201142f73816cdee37 /drivers/net/wireless/ath/ath9k/wmi.h
parentc4d04186c7023d54445b695da226b3e98e0a55f9 (diff)
downloadlinux-859c3ca1e4608615788dc6cbc199210fe4b5efa2.tar.xz
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 44b17385374f..310d94eaed19 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.h
+++ b/drivers/net/wireless/ath/ath9k/wmi.h
@@ -130,6 +130,12 @@ struct register_write {
__be32 val;
};
+struct ath9k_htc_tx_event {
+ int count;
+ struct __wmi_event_txstatus txs;
+ struct list_head list;
+};
+
struct wmi {
struct ath9k_htc_priv *drv_priv;
struct htc_target *htc;
@@ -144,6 +150,9 @@ struct wmi {
u32 cmd_rsp_len;
bool stopped;
+ struct list_head pending_tx_events;
+ spinlock_t event_lock;
+
spinlock_t wmi_lock;
atomic_t mwrite_cnt;