Hi, On Tue, Jan 21, 2014 at 01:06:19PM -0500, Alan Stern wrote: > > You could try to differentiate between an endpoint halt that requires a > > manual cleanup, and ones that the upper layer should handle, perhaps by > > adding a new EP_HALTED_MANUAL flag. The driver could accept URBs for > > the manual cleanup case, and reject URBs with -EPIPE for the ones the > > upper layers should handle. > > That should not be necessary. The HCD should always accept URB > submissions. Nothing will get sent to the device until the HCD clears > any host-side halts, but the upper layers don't worry about that > because the HCD takes care of it automatically. > > Contrariwise, the upper layers are responsible for clearing device-side > halts. The HCD should ignore that end of things as much as it can. right, but there's still the bug that usb_submit_urb() times out with xhci and it doesn't with ehci. So there _is_ a bug in xhci. I'll try to debug more and figure out what's really going on, but one thing is for sure. usbtest issued a SetFeature(ENDPOINT_HALT) as part of the test and it tries to usb_submit_urb() as means to verify that the device is really responding with Stalls. cheers -- balbi
Attachment:
signature.asc
Description: Digital signature