On Mon, 11 Apr 2011, Graeme Gill wrote: > Xiaofan Chen wrote: > > > Hmm, assuming that you are using libusb, I think the issue > > would have gone with later kernels (say 2.6.32 or later). Alan > > Stern has already post a real patch to the kernel after the following > > RFC which was CCed to the libusb mailing list. I think you do not > > need the resetep work-around with later kernels. > > http://libusb.6.n5.nabble.com/RFC-Skip-sending-Set-Interface-during-driver-unbinding-td6073.html > > Hi, > I'm not really seeing the relevance, unless it is to hint that > even my workaround will be broken by latter kernels ? Xiaofan was suggesting that your workaround might not be needed with later kernels. But keeping the workaround shouldn't hurt anything. > ie. if on recent Linux kernels the resetep IOCTL no longer does anything > (ie. it doesn't reset the data toggle), then it breaks my workaround. No. The premise and the conclusion in that sentence are both false. > But perhaps the above reference is not to the resetep IOCTL, but to > the side effect of set interface ? (Set interface doesn't figure in > my problem as far as I can tell.) It does figure into your problem, because earlier Linux kernels would automatically send a Set-Interface request whenever a program released an interface. If the device doesn't handle these requests properly, the data toggles can get messed up. More recent kernels do not automatically send the Set-Interface request, providing the interface was already in altsetting 0 when it was released. Alan Stern -- 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