summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/usb/host/ehci-hub.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/usb/host/ehci-hub.c')
-rw-r--r--kernel/drivers/usb/host/ehci-hub.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/drivers/usb/host/ehci-hub.c b/kernel/drivers/usb/host/ehci-hub.c
index 69208447d..086a7115d 100644
--- a/kernel/drivers/usb/host/ehci-hub.c
+++ b/kernel/drivers/usb/host/ehci-hub.c
@@ -155,7 +155,7 @@ static int ehci_port_change(struct ehci_hcd *ehci)
return 0;
}
-static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
+void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
bool suspending, bool do_wakeup)
{
int port;
@@ -220,6 +220,7 @@ static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
spin_unlock_irq(&ehci->lock);
}
+EXPORT_SYMBOL_GPL(ehci_adjust_port_wakeup_flags);
static int ehci_bus_suspend (struct usb_hcd *hcd)
{
@@ -1220,6 +1221,13 @@ int ehci_hub_control(
*/
ehci->reset_done [wIndex] = jiffies
+ msecs_to_jiffies (50);
+
+ /*
+ * Force full-speed connect for FSL high-speed
+ * erratum; disable HS Chirp by setting PFSC bit
+ */
+ if (ehci_has_fsl_hs_errata(ehci))
+ temp |= (1 << PORTSC_FSL_PFSC);
}
ehci_writel(ehci, temp, status_reg);
break;