Hi, John Skelton <jskel@xxxxxxx> writes: > Apologies if this ought to have gone to the USB maintainer (but his > auto-reply implies not). > > I'm particularly interested in drivers/usb/core/config.c > which appears to enforce the USB specification by refusing to allow a > low speed CDC ACM. (Comment "Some buggy low-speed devices ...", at > about line 300.) > > However, such devices exist and some are potentially quite useful (such > as Arduinos & digistump). Various people have posted about not being > able to use them with Linux and I think the above file is the reason > (another well known OS family allows them). > > I'd like to ask if there's a sane (Linux) way to allow them or are you > open to one being created? > > If so, as I don't know the best way then if you have any ideas I'd > certainly be pleased to hear them. Some sort of quirk? > > To make it easy for non-expert/novice Linux users to connect > non-conforming USB devices and have them "just work" please consider > a way that is either the default or easy, i.e. so they don't have to > config/build a kernel. > > I am a bit surprised that the code does what it currently does, as it > basically makes such devices unusable so far as I can tell and may as > well just reject them entirely. Here's the comment: /* Some buggy low-speed devices have Bulk endpoints, which is * explicitly forbidden by the USB spec. In an attempt to make * them usable, we will try treating them as Interrupt endpoints. */ The code isn't forbidding CDC ACM low speed devices, it's forbidding Bulk endpoints on Low speed, which don't exist :-) Are you saying there are Bulk endpoints on low speed Arduinos? -- balbi -- 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