usb: host: ehci-hcd: add controller_resets_phy quirk
authorGary King <gking@nvidia.com>
Tue, 8 Dec 2009 04:52:35 +0000 (20:52 -0800)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:28:12 +0000 (16:28 -0700)
only reset the controller when doing so won't also reset the phy (Tegra quirk)

Change-Id: I549a18977d0d5ebfa12c32016aa9e6bffaa8643c
Signed-off-by: Gary King <gking@nvidia.com>
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci.h

index 1b89b2dbd9ea5ad69ffa11814a88504ea4559dc0..09ed98e5a17d89679c37a4ffe4ce7fbe67f4337a 100644 (file)
@@ -259,7 +259,8 @@ static int ehci_reset (struct ehci_hcd *ehci)
 
        command |= CMD_RESET;
        dbg_cmd (ehci, "reset", command);
-       ehci_writel(ehci, command, &ehci->regs->command);
+       if (!ehci->controller_resets_phy)
+               ehci_writel(ehci, command, &ehci->regs->command);
        ehci_to_hcd(ehci)->state = HC_STATE_HALT;
        ehci->next_statechange = jiffies;
        retval = handshake (ehci, &ehci->regs->command,
index bde823f704e9a6d496cf735f08658fa7f2f6397b..3de86c1debd2e098e35628470851118ac9e1cc14 100644 (file)
@@ -131,6 +131,7 @@ struct ehci_hcd {                   /* one per controller */
        unsigned                need_io_watchdog:1;
        unsigned                broken_periodic:1;
        unsigned                fs_i_thresh:1;  /* Intel iso scheduling */
+       unsigned                controller_resets_phy:1;
 
        /* required for usb32 quirk */
        #define OHCI_CTRL_HCFS          (3 << 6)