The primary fix here is to throttle the requests for status after a read or write operation. In some cases I was seeing more than 1000 before the device was ready with a response.
The remainder are smaller improvements related to the read/write logic. All of this seems pretty straightforward with the possible exception of changing the returned error from EINVAL to EIO. The EINVAL seems wrong to me but maybe not? Regards, Chris Chris Rorvick (6): ALSA: line6: Improve line6_read/write_data() interfaces ALSA: line6: Add delay before reading status ALSA: line6: Return error if device not responding ALSA: line6: Return EIO if read/write not successful ALSA: line6: Use explicit type for serial number ALSA: line6: toneport: Use explicit type for firmware version sound/usb/line6/driver.c | 51 +++++++++++++++++++++++++++++++++------------- sound/usb/line6/driver.h | 10 ++++----- sound/usb/line6/pod.c | 4 ++-- sound/usb/line6/toneport.c | 4 ++-- 4 files changed, 46 insertions(+), 23 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/