• Jussi Kivilinna's avatar
    zd1211rw: handle lost read-reg interrupts · c900eff3
    Jussi Kivilinna authored
    Device losses read-reg interrupts. By looking at usbmon it appears that
    USB_INT_ID_RETRY_FAILED can override USB_INT_ID_REGS. This causes read
    command to timeout, usually under heavy TX.
    
    Fix by retrying read registers again if USB_INT_ID_RETRY_FAILED is received
    while waiting for USB_INT_ID_REGS.
    
    However USB_INT_ID_REGS is not always lost but is received after
    USB_INT_ID_RETRY_FAILED and is usually received by the retried read
    command. USB_INT_ID_REGS of the retry is then left unhandled and might
    be received by next read command. Handle this by ignoring previous
    USB_INT_ID_REGS that doesn't match current read command request.
    Signed-off-by: default avatarJussi Kivilinna <jussi.kivilinna@mbnet.fi>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    c900eff3
zd_usb.c 50.5 KB