Please merge; useful for battery powered hosts.

- Dave
This adds hub_set_power_budget(), mostly so that HCDs for low
powered ports (cell phone, PDA, etc) can more easily report their
true power budgets.  It's not always 500mA per root hub port; this
makes dummy_hcd report the minimum, 8mA.

Signed-off-by:  David Brownell <[EMAIL PROTECTED]>

--- a/drivers/usb/core/hub.h    Mon Jun  7 14:31:53 2004
+++ b/drivers/usb/core/hub.h    Mon Jun  7 14:31:53 2004
@@ -216,4 +216,15 @@
        struct work_struct      leds;
 };
 
+/* use this for low-powered root hubs */
+static inline void
+hub_set_power_budget (struct usb_device *hubdev, unsigned mA)
+{
+       struct usb_hub  *hub;
+
+       hub = (struct usb_hub *)
+               usb_get_intfdata (hubdev->actconfig->interface[0]);
+       hub->power_budget = min(mA,(unsigned)500)/2;
+}
+
 #endif /* __LINUX_HUB_H */
--- a/drivers/usb/gadget/dummy_hcd.c    Mon Jun  7 14:31:53 2004
+++ b/drivers/usb/gadget/dummy_hcd.c    Mon Jun  7 14:31:53 2004
@@ -1679,6 +1679,9 @@
                goto clean1;
        }
 
+       /* only show a low-power port: just 8mA */
+       hub_set_power_budget (root, 8);
+
        dum->started = 1;
 
        if ((retval = dummy_register_udc (dum)) != 0) {

Reply via email to