• Jussi Kivilinna's avatar
    zd1211rw: use async urb for write command · eefdbec1
    Jussi Kivilinna authored
    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: default avatarJussi Kivilinna <jussi.kivilinna@mbnet.fi>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    eefdbec1
zd_usb.c 46.7 KB