]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/blobdiff - drivers/usb/host/ehci-tegra.c
Revert "ARM: tegra: skip USB resume from LP0"
[sojka/nv-tegra/linux-3.10.git] / drivers / usb / host / ehci-tegra.c
index 74f6a8abc7f2d512371e3ae5d221d672047c6db0..6b0c7ca09bca4a3656d62bae06320554272810ae 100644 (file)
@@ -80,7 +80,6 @@ struct tegra_ehci_hcd {
        struct delayed_work boost_cpu_freq_work;
        struct pm_qos_request boost_cpu_freq_req;
 #endif
-       bool is_skip_resume_enabled;
 };
 
 struct dma_align_buffer {
@@ -239,7 +238,6 @@ static irqreturn_t tegra_ehci_irq(struct usb_hcd *hcd)
                ehci_dbg(ehci, "pmc interrupt detected\n");
                wake_lock_timeout(&tegra->ehci_wake_lock, HZ);
                usb_hcd_resume_root_hub(hcd);
-               hcd_to_bus(hcd)->skip_resume = false;
                spin_unlock(&ehci->lock);
                return irq_status;
        }
@@ -437,10 +435,8 @@ static int tegra_ehci_bus_suspend(struct usb_hcd *hcd)
        err = ehci_bus_suspend(hcd);
        if (err)
                tegra->bus_suspended_fail = true;
-       else {
+       else
                usb_phy_set_suspend(get_usb_phy(tegra->phy), 1);
-               hcd_to_bus(hcd)->skip_resume = true;
-       }
        mutex_unlock(&tegra->sync_lock);
        EHCI_DBG("%s() END\n", __func__);
 
@@ -797,8 +793,6 @@ static int tegra_ehci_probe(struct platform_device *pdev)
 
        tegra->ehci = hcd_to_ehci(hcd);
 
-       hcd_to_bus(hcd)->skip_resume = pdata->u_data.host.skip_resume;
-       tegra->is_skip_resume_enabled = pdata->u_data.host.skip_resume;
        if (pdata->port_otg) {
                tegra->transceiver =
                        devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
@@ -842,8 +836,6 @@ static int tegra_ehci_resume(struct platform_device *pdev)
        int err = 0;
        struct tegra_ehci_hcd *tegra = platform_get_drvdata(pdev);
        struct tegra_usb_platform_data *pdata = dev_get_platdata(&pdev->dev);
-       struct usb_hcd *hcd = ehci_to_hcd(tegra->ehci);
-
        if (tegra->irq) {
                err = disable_irq_wake(tegra->irq);
                if (err < 0)
@@ -851,21 +843,11 @@ static int tegra_ehci_resume(struct platform_device *pdev)
                                "Couldn't disable USB host mode wakeup, irq=%d, "
                                "error=%d\n", tegra->irq, err);
        }
-
-       if (tegra->is_skip_resume_enabled) {
-               if (tegra_usb_phy_is_pmc_wake(tegra->phy))
-                       hcd_to_bus(hcd)->skip_resume = false;
-       }
-
        if (pdata->u_data.host.turn_off_vbus_on_lp0) {
                tegra_usb_enable_vbus(tegra->phy, true);
                tegra_ehci_notify_event(tegra, USB_EVENT_ID);
        }
-       if (tegra->is_skip_resume_enabled)
-               return 0;
-       else
-               return tegra_usb_phy_power_on(tegra->phy);
-
+       return tegra_usb_phy_power_on(tegra->phy);
 }
 
 static int tegra_ehci_suspend(struct platform_device *pdev, pm_message_t state)
@@ -878,14 +860,12 @@ static int tegra_ehci_suspend(struct platform_device *pdev, pm_message_t state)
        if (tegra->bus_suspended_fail)
                return -EBUSY;
        else {
-               if (!tegra->is_skip_resume_enabled) {
-                       err = tegra_usb_phy_power_off(tegra->phy);
-                       if (err < 0)
-                               return err;
-                       if (pdata->u_data.host.turn_off_vbus_on_lp0) {
-                               tegra_usb_enable_vbus(tegra->phy, false);
-                               tegra_usb_phy_pmc_disable(tegra->phy);
-                       }
+               err = tegra_usb_phy_power_off(tegra->phy);
+               if (err < 0)
+                       return err;
+               if (pdata->u_data.host.turn_off_vbus_on_lp0) {
+                       tegra_usb_enable_vbus(tegra->phy, false);
+                       tegra_usb_phy_pmc_disable(tegra->phy);
                }
                if (tegra->irq) {
                        err = enable_irq_wake(tegra->irq);