Re: [linux-usb-devel] USB devices fail unnecessarily on unpowered hubs

From: David Brownell
Date: Mon Jun 05 2006 - 10:58:37 EST


On Saturday 03 June 2006 2:29 am, Oliver Neukum wrote:
> Am Dienstag, 30. Mai 2006 22:01 schrieb Pavel Machek:

> > Actually I have exactly opposite problem: my computer (spitz) can't
> > supply full 500mA on its root hub, and linux tries to power up
> > 'hungry' devices, anyway, leading to very weird behaviour.
>
>
> You could lower the obvious values in this code from drivers/usb/core/hub.c
>
> if (hdev == hdev->bus->root_hub) {
> if (hdev->bus_mA == 0 || hdev->bus_mA >= 500)
> hub->mA_per_port = 500;
> else {
> hub->mA_per_port = hdev->bus_mA;
> hub->limited_power = 1;
> }
>
> If that does the job we need to somehow inherit the power supply maximum from
> PCI when we allocate the root hub's device structure.

I don't think there is such a convention that's generic for PCI. There might
be ACPI-specific tables holding that value, but on embedded hardware the model
is often that the arch/.../board-ZZZ.c file just "knows" things like how much
power the regulator powering that port can provide, and arranges bus_mA to match.
Just like it knows all sorts of other details about how that board works.

- Dave
-
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/