yOn Sat, 4 Jun 2016, Greg KH wrote: > On Sat, Jun 04, 2016 at 08:32:43PM +0200, Michał Pecio wrote: > > Hi, > > > > Why high-bandwidth USB 1.1 isochronous devices don't work on 2.0 hosts? You mean, on EHCI hosts -- they do work on other USB-2 host controllers, as far as I know. Basically, the answer is that the protocol is too complicated and nobody has done all the work needed to implement it fully. Demand has been relatively small, and USB-2 is in the process of being replaced by USB-3 anyway. IMO the USB-IF used bad judgement when they settled on the design for Transaction Translators (those are the hardware components that connect high-speed USB bus segments (USB-2) to full- and low-speed segments (USB-1.1)). They decided to put most of the burden on the software instead of the hardware, where it would have been much simpler. As a result, EHCI drivers for low- and full-speed devices have to be incredibly complicated, and nobody wants to put in the work required to make one that is fully functional for Linux. > > I have an ADSL modem of this kind which I would like to use on a > > companion-less 2.0 host in my router, but I can't because it fails with > > ENOSPC errors. Same thing happens on my PC when connected through a 2.0 > > hub, but it works perfectly on 1.1 and 3.0 hosts, with or without hubs. > > > > This seems to be an old and widely known issue, but the only "solution" > > I found so far is "well, just don't use hubs and let the companion take > > it over", which obviously doesn't solve the case of pure-EHCI SoCs. > > > > (Well, another solutions applicable to those particular modems is to > > switch them to bulk mode, but it's slower.) > > > > Is this some limitation of the USB 2.0 spec or just a Linux issue? Just a Linux issue. But it is the result of a bad choice in the spec (again, in my opinion). > > Any possible fixes or hackarounds? > > Don't use a 2.0 hub, or connect it directly as you have, or use a 3.0 > controller :) > > Seriously, handling 1.1 transactions through a 2.0 hub is hard, and > messy. It's been a known issue for decades, and given that 3.0 pretty > much resolved most of these issues, no one is working to resolve them > anymore, it's just so much simpler to change hardware. As Greg says, changing hardware would be much less effort and cost a lot less than trying to fix up the software. Of course, if you want to work on the driver software, you are free to do so -- I'll be willing to help. 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