]> git.baikalelectronics.ru Git - kernel.git/commit
zd1211rw: use async urb for write command
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Sat, 12 Feb 2011 18:43:32 +0000 (20:43 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 14 Feb 2011 20:51:21 +0000 (15:51 -0500)
commitfa36c2be50ff076f37e4f641f1f495656de22bfa
tree6dc40b6d25f8dede0522927f48c4a716ff9c88c9
parent172a478caf9db7d092192e14ae627b53cf08e6e7
zd1211rw: use async urb for write command

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.

This patch makes zd_usb_iowrite16v use asynchronous urb submit within
zd_usb.c. zd_usb_iowrite16v_async_start is used to initiate writing
multiple commands to device using zd_usb_iowrite16v_async. Each URB
is delayed and submitted to device by next zd_usb_iowrite16v_async
call or by call to zd_usb_iowrite16v_async_end. URBs submitted by
zd_usb_iowrite16v_async have URB_NO_INTERRUPT set and last URB
send by zd_usb_iowrite16v_async_end does not. This lower CPU
usage when doing writes that require multiple URBs.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/zd1211rw/zd_usb.c
drivers/net/wireless/zd1211rw/zd_usb.h