At 10:33 AM 7/16/02 -0700, Matthew Dharm wrote: >That's what a clean unlink looks like under EHCI? Okay, then.... > >The only reason command_abort() gets called is that the command has been >out for over 20 seconds. For that to occur during the data phase (and >combined with the 'hang' at the CSW stage) means that the HCD thinks that >the device is NAKing. > >My -guess- is that the data toggle has been screwed up somewhere. If it's >not an EHCI problem, then the device is basically refusing to transfer >anything in. We should get status or data or _something_, but never >silence from the device. Actually in the USB spec, no response is a necessary state in the protocol. ACK means that the receiver got the packet and it was ok. NAK means the receiver got the packet and it was ok, but the receiver is not ready and wishes to have this resent later (in this case only a device issues a NAK. A host cannot NAK - he just shouldn't ask if he is not ready for the data). A STALL is an interesting response, it means good data got to the device, the device could accept the data, but the control/SETUP data made no sense. It generally means the higher level driver is broken. A host cannot STALL.
In the case of a real transmission error ie bad crc or bad PID or bad data0/1 state the proper response from the receiver is to not respond. There is a spec'd minimum number of usb bus clocks (3 or 4, I dont remember) that defines a timeout on the bus, so the sender knows that the transmission failed and needs to be retried. The problem is if the host screws up the data0/1 state the device will continue to no-response the bad packet forever...until a higher level timeout occurs in the host and the higher level driver gets the state fixed. Regards, Steve. ------------------------------------------------------- This sf.net email is sponsored by: Jabber - The world's fastest growing real-time communications platform! Don't just IM. Build it in! http://www.jabber.com/osdn/xim _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel