static int spear_ohci_hcd_drv_remove(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); struct spear_ohci *ohci_p = to_spear_ohci(hcd); usb_remove_hcd(hcd); if (ohci_p->clk) spear_stop_ohci(ohci_p); usb_put_hcd(hcd); return 0; }
static int spear_ohci_hcd_drv_resume(struct platform_device *dev) { struct usb_hcd *hcd = platform_get_drvdata(dev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); struct spear_ohci *ohci_p = to_spear_ohci(hcd); if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; spear_start_ohci(ohci_p); ohci_finish_controller_resume(hcd); return 0; }
static int spear_ohci_hcd_drv_suspend(struct platform_device *dev, pm_message_t message) { struct usb_hcd *hcd = platform_get_drvdata(dev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); struct spear_ohci *ohci_p = to_spear_ohci(hcd); if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; spear_stop_ohci(ohci_p); return 0; }
static int spear_ohci_hcd_drv_remove(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); struct spear_ohci *ohci_p = to_spear_ohci(hcd); usb_remove_hcd(hcd); if (ohci_p->clk) spear_stop_ohci(ohci_p); iounmap(hcd->regs); release_mem_region(hcd->rsrc_start, hcd->rsrc_len); usb_put_hcd(hcd); if (ohci_p->clk) clk_put(ohci_p->clk); platform_set_drvdata(pdev, NULL); return 0; }