Re: USB devices fail unnecessarily on unpowered hubs

From: Robert Hancock
Date: Tue Jun 06 2006 - 20:50:52 EST


Lee Dowling wrote:
This, of course, doesn't deal with outside cases.

It's common knowledge that a lot of equipment is running out of spec all the time because of cheap components, bad BIOS's etc. As an example, my Asus L4500R laptop (with the latest ASUS BIOS) ALWAYS shows "over-current" under Linux on all *internal* USB ports the second ANYTHING is plugged in (and I have nearly 50 different USB devices of different types, manufacturers and quality).

The suggestion to simply stop over-current ports from working would immediately disable all USB ports, including any powered hubs that I plug into them, I assume. I can't update the BIOS any further to stop this and if I could I doubt it would solve the problem (it looks like cheap hardware to me). Therefore, you've just removed all my perfectly functional USB capability because the best BIOS I can use reports an incorrect error (hey, what's new?).

I don't think you assume correctly. Overcurrent indication from the hub is supposed to mean that something on the hub is shorted or pulling too much current. This discussion is about the kernel refusing to enable devices when they would consume more power than the hub they are connected to can provide. Regardless of what you do with plugging in devices, overcurrent isn't supposed to happen unless something is broken.


Windows XP, incidentally, runs flawlessly with all USB devices without power warnings on this laptop. This may well be fixable somewhere else, it may even be a bug in the internal USB code for my laptop which may be help in hunting such bugs down.

Probably either XP ignores the overcurrent indication, or else something in Linux is interacting badly with the controller and causing this indication. XP definitely DOES enforce USB power budgeting.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/