On Wed, 4 Dec 2002, Dan Streetman wrote: > I was under the impression that the HCD would notice (during the next > frame) that those TDs (or EDs) have a target device that's no longer > connected, and finish them with an error. If not, then how can the > host controller execute that TD/ED? The device isn't there...
... > It just seems strange to me to be aborting URBs for a device that no > longer exists...seems like the HCD would just clean them out during > the next frame. Especially since it would be easier (more > centralized) to do it in the HCD, while doing it in the drivers is > more work... I agree, and I have suggested this in the past. Unfortunately, it may be impossible (for some kinds of urb anyway) for the HCD to realize that the target device isn't connected. I believe, as a result of a somewhat hasty perusal of the USB spec, that it is legal under some circumstances for a device to fail to reply at all to a USB transaction for an extended period of time. For instance, if several isochronous OUT transfers in a row get corrupted, the device is not obliged to transmit a handshake or any other kind of reply. Unless the HCD includes some provision for timing out a TD/ED, it would not notice anything wrong. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: Microsoft Visual Studio.NET comprehensive development tool, built to increase your productivity. Try a free online hosted session at: http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
