if (!root)
                return -ENOMEM;
 
+       /* only show a low-power port: just 8mA */
+       hcd->power_budget = 8;
+
        /* root hub enters addressed state... */
        hcd->state = HC_STATE_RUNNING;
        root->speed = USB_SPEED_HIGH;
                goto err1;
        }
 
-       /* only show a low-power port: just 8mA */
-       hub_set_power_budget (root, 8);
-
        if ((retval = dummy_register_udc (dum)) != 0)
                goto err2;
 
 
                ohci_writel (ohci, ohci->hc_control, &ohci->regs->control);
                return -ENODEV;
        }
-       if (ohci->power_budget)
-               hub_set_power_budget(udev, ohci->power_budget);
 
        register_reboot_notifier (&ohci->reboot_notifier);
        create_debug_files (ohci);
 
        if (config->otg) {
                ohci_to_hcd(ohci)->self.otg_port = config->otg;
                /* default/minimum OTG power budget:  8 mA */
-               ohci->power_budget = 8;
+               ohci_to_hcd(ohci)->power_budget = 8;
        }
 
        /* boards can use OTG transceivers in non-OTG modes */
 
                /* TPS2045 switch for internal transceiver (port 1) */
                if (machine_is_omap_osk()) {
-                       ohci->power_budget = 250;
+                       ohci_to_hcd(ohci)->power_budget = 250;
 
                        rh &= ~RH_A_NOCP;
 
 
         * other external transceivers should be software-transparent 
         */
        struct otg_transceiver  *transceiver;
-       unsigned                power_budget;
 
        /*
         * memory management for queue data structures
 
        udev->speed = USB_SPEED_FULL;
        hcd->state = HC_STATE_RUNNING;
 
-       if (sl811->board)
+       if (sl811->board) {
                hcd->can_wakeup = sl811->board->can_wakeup;
+               hcd->power_budget = sl811->board->power * 2;
+       }
 
        if (usb_hcd_register_root_hub(udev, hcd) != 0) {
                usb_put_dev(udev);
                return -ENODEV;
        }
 
-       if (sl811->board && sl811->board->power)
-               hub_set_power_budget(udev, sl811->board->power * 2);
-
        /* enable power and interupts */
        port_power(sl811, 1);