Linked by Thom Holwerda on Fri 23rd Aug 2013 08:37 UTC

Pretty much for my entire career in Linux USB (eight years now?), we've been complaining about how USB device power management just sucks. We enable auto-suspend for a USB device driver, and find dozens of different USB devices that simply disconnect from the bus when auto-suspend is enabled.

For years, we've blamed those devices for being cheap, crappy, and broken. We talked about blacklists in the kernel, and ripped those out when they got too big. We've talked about whitelists in userspace, but not many distros have time to cultivate such lists.

It turns out it's not always the device's fault.

Fascinating bug.

Permalink for comment 570432
To read all comments associated with this story, please click here.
Bill Shooter of Bul
Member since:

No, IMHO, the problem was in the spec. It defined a timeout value that was interpreted as a minimum by hardware developers and a maximum by software developers. Reading the spec and the code side by side, you probably wouldn't ever notice the problem.

This is something that only could have been caught with testing for this issue on a wide variety of hardware ( which is how it was caught). This is one of the weaknesses of linux, especially desktop linux, IMHO. It still happens with Windows, but more rarely. My brother's desktop runs ubuntu because windows isn't stable on the hardware ;)

Reply Parent Score: 4