On Mon, 13 Apr 2015, Mathias Nyman wrote:

> Another difference between EHCI and xHCI iss that xHCI needs to reset (the 
> host side)
> of a control endpoint if it stalled.  
> 
> From xHCI 1.0 4.8.3:
> 
> "A STALL detected on any stage (Setup, Data, or Status) of a Default Control 
> Endpoint request
> shall transition the Endpoint Context to the Halted state. A Default Control 
> Endpoint STALL
> condition is cleared by a Reset Endpoint Command which transitions the 
> endpoint from the Halted
> to the Stopped state. The Default Control Endpoint shall return to the 
> Running state when the
> Doorbell is rung for the next Setup Stage TD sent to the endpoint.
> ection 8.5.3.4 of the USB2 spec and section 8.12.2.3 of the USB3 spec state 
> of Control pipes,
> �Unlike the case of a functional stall, protocol stall does not indicate an 
> error with the device.� The
> xHC treats a functional stall and protocol stall identically, by Halting the 
> endpoint and requiring
> software to clear the condition by issuing a Reset Endpoint Command."

That sounds like something the xhci-hcd driver needs to do
automatically.  Higher-level drivers all assume that a protocol stall
does not need to be cleared.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to