Hi, (please configure your mailer to send text/plain emails, also keep linux-usb@xxxxxxxxxxxxxxx in Cc) On Fri, Jan 06, 2012 at 05:21:42PM +0800, Yu Xu wrote: > For the USB2.0, when usb device driver get SET_CONFIGURATION request, > it will call usb_ep_queue() after set_config. But for usb3.0, it's no > need to send back the zero length packet to usb host. Is there the > plan to fix it? you completely misunderstood the way USB works, aparently. That ZLP after USB_REQ_SET_CONFIGURATION is nothing less than the _mandatory_ Status Phase of the Control Transfer. USB3 Specification 4.4.5 clearly states "Control transfers must adhere to the same request definitions described in the Universal Serial Bus Specification, Revision 2.0." If you look into Control Transfers definition on USB2 Specification, you will learn from 8.5.3 that "Control transfers minimally have two transaction stages: Setup and Status. A control transfer may optionally contain a Data stage between the Setup and Status stages." What determines if we have the optional Data Stage is the wLength field of the Control Request. If you go as far as to look into both USB2 and USB3 specifications for the definition of a Set Configuration request, you learn from section 9.4.7 on *both* specifications that the control request for a Set Configuration is exactly the same. In no way USB3 specification mentions the possibility of a control transfer without a Status Stage. Heck, it just points us back to the USB2 specification. I don't know where did you get this understanding from, but there's absolutely nothing to be fixed on the Gadget Framework wrt your query. -- balbi
Attachment:
signature.asc
Description: Digital signature