usb: ehci: fix suspend bug
authorlyz <lyz@rock-chips.com>
Wed, 11 Mar 2015 09:33:17 +0000 (17:33 +0800)
committerlyz <lyz@rock-chips.com>
Mon, 16 Mar 2015 08:42:32 +0000 (16:42 +0800)
drivers/usb/dwc_otg_310/dwc_otg_hcd_linux.c
drivers/usb/dwc_otg_310/usbdev_rk3126.c
drivers/usb/host/ehci-rockchip.c

index 28d468374e37f8fc554317baf04c031513b9bca8..779181df2b2cebbbca51d58f94d21ca63a30d7fc 100755 (executable)
@@ -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;
        }
index eaeca4324c5282ee23f68731d97b8ed18303331f..601404920146cf18f795352a0a6f98fd199f7710 100755 (executable)
@@ -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 {
index 88ecd134c9ed118febc4cc63d8fb77fc4eeaf182..b8a5544d841b5ed7716c853c6a078d9e2c1cf527 100755 (executable)
@@ -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;