Peter Chen <peter.chen@xxxxxxxxxxxxx> writes: > On Fri, Mar 08, 2013 at 12:39:04PM +0200, Alexander Shishkin wrote: >> Peter Chen <peter.chen@xxxxxxxxxxxxx> writes: >> >> > Hi David >> >> Hi, >> >> > I notice at your code for hw_usb_set_address, there is a comment for it >> > /** >> > * This function explicitly sets the address, without the "USBADRA" (advance) >> > * feature, which is not supported by older versions of the controller. >> > */ >> >> That's mine. David's original driver did use USBADRA. I removed it >> because it's not supported by some versions of chipidea, for example the >> one that Marvell integrated in their kirkwood SoCs. >> >> > If we use USB3.0 host for CV test, we must use this bit, or the host >> > may send GET_DESCRIPTOR before the controller set address. >> >> That's because we don't have the state machine for ep0 currently, >> USBADRA has nothing to do with it. > > Can you explain more? As far as I know, it is the completion of set_address > cost too much time that the host sends next command before device > sets address. USBADRA doesn't magically speed up anything. It's a convenience thing that lets you set the controller's address register value straight away instead of deferring it till after status phase of SET_ADDRESS. The status phase won't happen any sooner than normally. Regards, -- Alex -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html