summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ar9170/usb.h
diff options
context:
space:
mode:
authorChristian Lamparter2009-06-06 05:07:23 +0200
committerJohn W. Linville2009-06-10 19:27:54 +0200
commit9b9c5aaeedfda256ed77094303e2a7242c3290da (patch)
tree07dc845cc308d9a4b721bf59605217bc884f01b1 /drivers/net/wireless/ath/ar9170/usb.h
parentar9170: interpret firmware debug commands (diff)
downloadkernel-qcow2-linux-9b9c5aaeedfda256ed77094303e2a7242c3290da.tar.gz
kernel-qcow2-linux-9b9c5aaeedfda256ed77094303e2a7242c3290da.tar.xz
kernel-qcow2-linux-9b9c5aaeedfda256ed77094303e2a7242c3290da.zip
ar9170: xmit code revamp
This patch is a back-port from aggregation testing code. In the past, we didn't limit the amount of active tx urbs. However, ar9170 only has a limited buffer reserved for pending data frames. This wasn't much of a problem with the slower 802.11b/g. We simply stopped the full queue and moved on to something different in the mean time. But - as you guessed it - this simple approach stands in way for a decent aggregation implementation. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ar9170/usb.h')
-rw-r--r--drivers/net/wireless/ath/ar9170/usb.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ar9170/usb.h b/drivers/net/wireless/ath/ar9170/usb.h
index 69f4bceb0af3..d098f4d5d2f2 100644
--- a/drivers/net/wireless/ath/ar9170/usb.h
+++ b/drivers/net/wireless/ath/ar9170/usb.h
@@ -51,6 +51,7 @@
#include "ar9170.h"
#define AR9170_NUM_RX_URBS 16
+#define AR9170_NUM_TX_URBS 8
struct firmware;
@@ -60,11 +61,15 @@ struct ar9170_usb {
struct usb_interface *intf;
struct usb_anchor rx_submitted;
+ struct usb_anchor tx_pending;
struct usb_anchor tx_submitted;
bool req_one_stage_fw;
- spinlock_t cmdlock;
+ spinlock_t tx_urb_lock;
+ unsigned int tx_submitted_urbs;
+ unsigned int tx_pending_urbs;
+
struct completion cmd_wait;
int readlen;
u8 *readbuf;