usb: ehci: fix suspend bug

This commit is contained in:
lyz
2015-03-11 17:33:17 +08:00
parent d5e07b80f1
commit f8b5e71ded
3 changed files with 4 additions and 15 deletions

View File

@@ -1170,7 +1170,7 @@ static int urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
DWC_SPINLOCK_IRQSAVE(dwc_otg_hcd->lock, &flags);
rc = usb_hcd_check_unlink_urb(hcd, urb, status);
if (rc){
if (rc) {
DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, flags);
return rc;
}

View File

@@ -408,7 +408,7 @@ static void usb20ehci_phy_suspend(void *pdata, int suspend)
if (suspend) {
/* enable soft control */
writel(UOC_HIWORD_UPDATE(0x1d5, 0x1ff, 0),
writel(UOC_HIWORD_UPDATE(0x1d1, 0x1ff, 0),
RK_GRF_VIRT + RK312X_GRF_UOC1_CON5);
usbpdata->phy_status = 1;
} else {

View File

@@ -367,25 +367,14 @@ static int ehci_rk_probe(struct platform_device *pdev)
rk_ehci->ehci = ehci;
rk_ehci->pldata = pldata;
rk_ehci->host_enabled = 2;
rk_ehci->host_setenable = 2;
rk_ehci->host_enabled = -1;
rk_ehci->host_setenable = -1;
rk_ehci->connect_detect_timer.function = rk_ehci_hcd_connect_detect;
rk_ehci->connect_detect_timer.data = (unsigned long)(rk_ehci);
init_timer(&rk_ehci->connect_detect_timer);
mod_timer(&rk_ehci->connect_detect_timer, jiffies + (HZ << 1));
INIT_DELAYED_WORK(&rk_ehci->host_enable_work, rk_ehci_hcd_enable);
if (pldata->phy_suspend) {
if (pldata->phy_status == USB_PHY_ENABLED) {
pldata->phy_suspend(pldata, USB_PHY_SUSPEND);
/* do not disable EHCI clk, otherwise RK3288
* host1(DWC_OTG) can't work normally.
* udelay(3);
* pldata->clock_enable(pldata, 0);
*/
}
}
EHCI_PRINT("%s ok\n", __func__);
return 0;