Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> writes: > On Thu, 13 Aug 2009, Vernon Sauder wrote: > >> Robert, >> >> In our testing, we found that the HW-bit solution for single-threading >> the setup requests is not sufficient to eliminate the "invalid state" >> warning message. It seems that the ACM bit is not honored for set >> configuration packets. We saw the host send an IN packet directly after >> the set conf before the gadget had time to perform the callback to the >> udc. We did not see any ill effect on the interaction by hitting this >> stage. Let me understand that. The sequence you see is : Host pxa27x_udc | | | ------ ep0(SETUP) ------> | | ------- ep0(OUT) -------> | | ------- ep0(OUT) -------> | | ------- ep0(OUT) -------> | | SetConfig() | | | | ----- ep0(IN)token -----> | | <---- ep0(IN, NACK)) ---- | | | | ----- ep0(IN)token -----> | | <---- ep0(IN, NACK) ----- | . . . . Time passes, and the UDC callback is handled . . | ----- ep0(IN)token -----> | | <----- ep0(IN, ACK) ----- | | Status stage | | | This sequence is the one I was expecting when I wrote the code. As far as my understanding goes, this is correct, in regard to the USB 2.0 specification (chapter 8.5.3.1, "function busy"). I don't understand why the warning is raised. Would you be so kind as to send me the "beagle" capture file, because I'm a bit blind without it. I won't take any action before I see what's actually happening. > Even though you didn't see any ill effect, it can nevertheless cause > problems. If the host starts sending requests before the Set-Config > has completed, it may end up trying to communicate with endpoints > before they are enabled. That won't be good. Agreed. Cheers. -- Robert -- 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