summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/zd1211rw/zd_usb.h
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>2011-02-12 20:43:42 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-02-14 15:51:21 -0500
commit8662b2518ff7995002378058488326ef7cb80de8 (patch)
treee7b0d1c7fca5820a46ac2411a5b4a8e36f8779c4 /drivers/net/wireless/zd1211rw/zd_usb.h
parenteefdbec1ea8b7093d2c09d1825f68438701723cf (diff)
downloadtalos-obmc-linux-8662b2518ff7995002378058488326ef7cb80de8.tar.gz
talos-obmc-linux-8662b2518ff7995002378058488326ef7cb80de8.zip
zd1211rw: move async iowrite16v up to callers
Writing beacon to device happen through multiple write command calls. zd_usb_iowrite16v uses synchronous urb call and with multiple write commands in row causes high CPU usage. Make asynchronous zd_usb_iowrite16v_async available outside zd_usb.c and use where possible. This lower CPU usage from ~10% to ~2% on Intel Atom when running AP-mode with 100 TU beacon interval. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/zd1211rw/zd_usb.h')
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.h b/drivers/net/wireless/zd1211rw/zd_usb.h
index 929142692063..b3df2c8116cc 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.h
+++ b/drivers/net/wireless/zd1211rw/zd_usb.h
@@ -273,6 +273,10 @@ static inline int zd_usb_ioread16(struct zd_usb *usb, u16 *value,
return zd_usb_ioread16v(usb, value, (const zd_addr_t *)&addr, 1);
}
+void zd_usb_iowrite16v_async_start(struct zd_usb *usb);
+int zd_usb_iowrite16v_async_end(struct zd_usb *usb, unsigned int timeout);
+int zd_usb_iowrite16v_async(struct zd_usb *usb, const struct zd_ioreq16 *ioreqs,
+ unsigned int count);
int zd_usb_iowrite16v(struct zd_usb *usb, const struct zd_ioreq16 *ioreqs,
unsigned int count);
OpenPOWER on IntegriCloud