- struct ohci_hcd *ohci = hcd_to_ohci (hcd);
- int retval = 0;
-
-#ifdef CONFIG_PMAC_PBOOK
- {
- struct device_node *of_node;
-
- /* Re-enable USB PAD & cell clock */
- of_node = pci_device_to_OF_node (to_pci_dev(hcd->self.controller));
- if (of_node)
- pmac_call_feature (PMAC_FTR_USB_ENABLE, of_node, 0, 1);
- }
-#endif
-
- /* resume root hub */
- while (time_before (jiffies, ohci->next_statechange))
- msleep (100);
-#ifdef CONFIG_USB_SUSPEND
- /* get extra cleanup even if remote wakeup isn't in use */
- retval = usb_resume_device (hcd->self.root_hub);
-#else
- down (&hcd->self.root_hub->serialize);
- retval = ohci_hub_resume (hcd);
- up (&hcd->self.root_hub->serialize);
-#endif
-
- if (retval == 0) {
- hcd->self.controller->power.power_state = 0;
-#ifdef CONFIG_PMAC_PBOOK
- if (_machine == _MACH_Pmac)
- enable_irq (to_pci_dev(hcd->self.controller)->irq);
-#endif
- }
- return retval;
+ set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ usb_hcd_resume_root_hub(hcd);
+ return 0;