diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2011-06-20 15:42:44 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-06-23 00:09:46 +0400 |
commit | c900eff30a14ecf209ee7a17a7c3c54890694ce6 (patch) | |
tree | a408e64682e04326bcb334409e0f1130f8222cde /drivers/net/cassini.c | |
parent | f762d8c3f8b502b93d20bd755fc30ce99d3d0abd (diff) | |
download | linux-c900eff30a14ecf209ee7a17a7c3c54890694ce6.tar.xz |
zd1211rw: handle lost read-reg interrupts
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: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/cassini.c')
0 files changed, 0 insertions, 0 deletions