Hi, > interesting. Wonder what Windows is doing differently. Yeah, I guess the > best way forward is to find which commit caused the regression and git > bisect is the way to do that. Would be nice to see v3.13, v3.14, > v3.15... are working or not. The idea is to find the smallest interval > for bisection. > I finally bisect the kernel (I didn't known that command, thanks for the tip) and found that it doesn't work anymore from this commit : b0bac2581c1918cc4ab0aca01977ad69f0bc127a is the first bad commit commit b0bac2581c1918cc4ab0aca01977ad69f0bc127a Author: Robert Baldyga <r.baldyga@xxxxxxxxxxx> Date: Wed Sep 16 12:10:42 2015 +0200 usb: gadget: introduce 'enabled' flag in struct usb_ep This patch introduces 'enabled' flag in struct usb_ep, and modifies usb_ep_enable() and usb_ep_disable() functions to encapsulate endpoint enabled/disabled state. It helps to avoid enabling endpoints which are already enabled, and disabling endpoints which are already disables. From now USB functions don't have to remember current endpoint enable/disable state, as this state is now handled automatically which makes this API less bug-prone. Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx> Signed-off-by: Felipe Balbi <balbi@xxxxxx> If I comment the test in function usb_ep_enable and usb_ep_disable to avoid enabling or disabling endpoints that already are, it works. But I guess the real issue is that this function is called more than once at some point? Regards, Gil -- 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