Alan Stern wrote:
Windows performs a port reset. The code for doing this on Linux has always been a bit buggy, although it's getting better. However, the delay would be a lot longer than 10 seconds since Linux tries very hard to recover from errors without doing anything as drastic as a port reset. The actual delay (when the port reset stuff starts working right) will probably be more like 70 seconds, maybe longer.
After the reset Windows presumably simply repeats the WRITE command. Since the same data gets sent the second time as the first, why doesn't the device just lockup again?
Ahah, that's the thing. It's not locking up on the actual data URB, it locks up on the URB after the data was sent. So from what I gather, the data makes it to the disk, it just can't retrieve the status of the transfer.
I've also compared a Genesys device on Linux & Windows. I don't get write errors (I suspect that data-sensitive thing is specific to Brad's unit), but I do get read errors on Linux, usually only after a few hundred MB continuous reads.
I don't get these on Windows (although I haven't run both OS's on the same computer), but when the device locks up on Linux, the drive-activity light sticks on. This looks to me like a lockup in the Genesys device itself, which would tie in with it never coming back with a status response. Internally it thinks it's still waiting for the disk (maybe the chip's logic misses the HD's "complete" status).
The bottom line does seem to be a bug in the chip, but which Windows (in most cases) can work round - probably with a swift reset and re-try. In fact from checking through the source, the error messages that Linux logs about timeouts etc. are when it's actually trying to do the recovery, but it ends up with "reset not implemented" - which it isn't, at least not in 2.4!
My gut feel now is that these chips are probably fundamentally broken, but can be made to work if the driver can be smart enough about issuing resets. It's pretty nasty, but if Windows can get away with it ... :)
-- Cheers Rick
------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel