On Tue, Aug 21, 2012 at 11:08 AM, Felipe Balbi <balbi@xxxxxx> wrote: > Then stick to a workqueue... but could you let me know why exactly you > have to fake SET_CONFIGURATION/SET_INTERFACE requests ? Is this a > silicon bug or a silicon feature ? That's quite weird to me. It is a silicon feature: the core will intercept SET_CONFIGURATION / SET_INTERFACE requests, store wValue/wIndex in the appropriate USBD_STATUS_REG field (cfg/intf/altintf), send an acknowledgement to the host, and raise a control interrupt. I haven't found it to be terribly helpful, but I don't know of a way to turn it off. I will reinstate the workqueue and submit V3. Thanks.