static int exynos_ohci_runtime_resume(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct exynos4_ohci_platdata *pdata = pdev->dev.platform_data; struct exynos_ohci_hcd *exynos_ohci = platform_get_drvdata(pdev); struct usb_hcd *hcd = exynos_ohci->hcd; if (dev->power.is_suspended) return 0; dev_dbg(dev, "%s\n", __func__); if (exynos_ohci->phy) { struct usb_phy *phy = exynos_ohci->phy; if (exynos_ohci->post_lpa_resume) { usb_phy_init(phy); exynos_ohci->post_lpa_resume = 0; } pm_runtime_get_sync(phy->dev); } else if (pdata->phy_resume) { pdata->phy_resume(pdev, USB_PHY_TYPE_HOST); } ohci_resume(hcd, false); return 0; }
static int ohci_hcd_tmio_drv_resume(struct platform_device *dev) { const struct mfd_cell *cell = mfd_get_cell(dev); struct usb_hcd *hcd = platform_get_drvdata(dev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); struct tmio_hcd *tmio = hcd_to_tmio(hcd); unsigned long flags; u8 misc; int ret; if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; if (cell->resume) { ret = cell->resume(dev); if (ret) return ret; } tmio_start_hc(dev); spin_lock_irqsave(&tmio->lock, flags); misc = tmio_ioread8(tmio->ccr + CCR_MISC); misc &= ~(1 << 3); /* USSUSP */ tmio_iowrite8(misc, tmio->ccr + CCR_MISC); spin_unlock_irqrestore(&tmio->lock, flags); ohci_resume(hcd, false); return 0; }
static int exynos_ohci_resume(struct device *dev) { struct exynos_ohci_hcd *exynos_ohci = dev_get_drvdata(dev); struct usb_hcd *hcd = exynos_ohci->hcd; clk_prepare_enable(exynos_ohci->clk); if (exynos_ohci->otg) exynos_ohci->otg->set_host(exynos_ohci->otg, &exynos_ohci->hcd->self); exynos_ohci_phy_enable(exynos_ohci); if (exynos_ohci->phy) { /* * We are going to change runtime status to active. * Make sure we get the phy only if we didn't get it before. */ if (pm_runtime_suspended(dev)) pm_runtime_get_sync(exynos_ohci->phy->dev); } ohci_resume(hcd, false); /*Update runtime PM status and clear runtime_error */ pm_runtime_disable(dev); pm_runtime_set_active(dev); pm_runtime_enable(dev); return 0; }
static int ohci_pci_resume (struct pci_dev *dev) { ohci_t *ohci = (ohci_t *) pci_get_drvdata(dev); extern int ohci_resume(ohci_t *); return ohci_resume(ohci); }
static int hiusb_ohci_hcd_drv_resume(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); hiusb_start_hcd(); ohci_resume(hcd, false); return 0; }
static int ohci_hcd_s3c2410_drv_resume(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct platform_device *pdev = to_platform_device(dev); s3c2410_start_hc(pdev, hcd); ohci_resume(hcd, false); return 0; }
static int ohci_omap_resume(struct platform_device *dev) { struct usb_hcd *hcd = platform_get_drvdata(dev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; omap_ohci_clock_power(1); ohci_resume(hcd, false); return 0; }
static int ohci_hcd_at91_drv_resume(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); if (device_may_wakeup(&pdev->dev)) disable_irq_wake(hcd->irq); if (!clocked) at91_start_clock(); ohci_resume(hcd, false); 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_resume(hcd, false); return 0; }
static int ohci_hcd_ep93xx_drv_resume(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; clk_enable(usb_host_clock); ohci_resume(hcd, false); return 0; }
static int ohci_sm501_resume(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct usb_hcd *hcd = platform_get_drvdata(pdev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; sm501_unit_power(dev->parent, SM501_GATE_USB_HOST, 1); ohci_resume(hcd, false); return 0; }
static int ohci_platform_resume(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct usb_ohci_pdata *pdata = dev_get_platdata(dev); struct platform_device *pdev = to_platform_device(dev); if (pdata->power_on) { int err = pdata->power_on(pdev); if (err < 0) return err; } ohci_resume(hcd, false); return 0; }
static int exynos_ohci_resume(struct device *dev) { struct exynos_ohci_hcd *exynos_ohci = dev_get_drvdata(dev); struct usb_hcd *hcd = exynos_ohci->hcd; clk_prepare_enable(exynos_ohci->clk); if (exynos_ohci->otg) exynos_ohci->otg->set_host(exynos_ohci->otg, &exynos_ohci->hcd->self); exynos_ohci_phy_enable(exynos_ohci); ohci_resume(hcd, false); return 0; }
static int exynos_ohci_resume(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd); struct platform_device *pdev = to_platform_device(dev); clk_prepare_enable(exynos_ohci->clk); if (exynos_ohci->otg) exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self); exynos_ohci_phy_enable(pdev); ohci_resume(hcd, false); return 0; }
static int ohci_da8xx_resume(struct platform_device *dev) { struct usb_hcd *hcd = platform_get_drvdata(dev); struct ohci_hcd *ohci = hcd_to_ohci(hcd); int ret; if (time_before(jiffies, ohci->next_statechange)) msleep(5); ohci->next_statechange = jiffies; ret = ohci_da8xx_enable(hcd); if (ret) return ret; ohci_resume(hcd, false); return 0; }
static int ohci_hcd_pxa27x_drv_resume(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd); struct pxaohci_platform_data *inf = dev->platform_data; int status; if (time_before(jiffies, ohci->ohci.next_statechange)) msleep(5); ohci->ohci.next_statechange = jiffies; if ((status = pxa27x_start_hc(ohci, dev)) < 0) return status; /* Select Power Management Mode */ pxa27x_ohci_select_pmm(ohci, inf->port_mode); ohci_resume(hcd, false); return 0; }
static int ohci_pci_resume(device_t self) { ohci_softc_t *sc = device_get_softc(self); uint32_t reg, int_line; if (pci_get_powerstate(self) != PCI_POWERSTATE_D0) { device_printf(self, "chip is in D%d mode " "-- setting to D0\n", pci_get_powerstate(self)); reg = pci_read_config(self, PCI_CBMEM, 4); int_line = pci_read_config(self, PCIR_INTLINE, 4); pci_set_powerstate(self, PCI_POWERSTATE_D0); pci_write_config(self, PCI_CBMEM, reg, 4); pci_write_config(self, PCIR_INTLINE, int_line, 4); } ohci_resume(sc); bus_generic_resume(self); return (0); }