diff options
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 7 | ||||
-rw-r--r-- | drivers/usb/host/ehci-orion.c | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 74dcf49bd015..4c77a818fd80 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -679,7 +679,12 @@ static int ehci_run (struct usb_hcd *hcd) | |||
679 | hcd->uses_new_polling = 1; | 679 | hcd->uses_new_polling = 1; |
680 | 680 | ||
681 | /* EHCI spec section 4.1 */ | 681 | /* EHCI spec section 4.1 */ |
682 | if ((retval = ehci_reset(ehci)) != 0) { | 682 | /* |
683 | * TDI driver does the ehci_reset in their reset callback. | ||
684 | * Don't reset here, because configuration settings will | ||
685 | * vanish. | ||
686 | */ | ||
687 | if (!ehci_is_TDI(ehci) && (retval = ehci_reset(ehci)) != 0) { | ||
683 | ehci_mem_cleanup(ehci); | 688 | ehci_mem_cleanup(ehci); |
684 | return retval; | 689 | return retval; |
685 | } | 690 | } |
diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c index 0f87dc72820a..281e094e1c18 100644 --- a/drivers/usb/host/ehci-orion.c +++ b/drivers/usb/host/ehci-orion.c | |||
@@ -105,7 +105,8 @@ static int ehci_orion_setup(struct usb_hcd *hcd) | |||
105 | struct ehci_hcd *ehci = hcd_to_ehci(hcd); | 105 | struct ehci_hcd *ehci = hcd_to_ehci(hcd); |
106 | int retval; | 106 | int retval; |
107 | 107 | ||
108 | ehci_reset(ehci); | 108 | hcd->has_tt = 1; |
109 | |||
109 | retval = ehci_halt(ehci); | 110 | retval = ehci_halt(ehci); |
110 | if (retval) | 111 | if (retval) |
111 | return retval; | 112 | return retval; |
@@ -117,7 +118,7 @@ static int ehci_orion_setup(struct usb_hcd *hcd) | |||
117 | if (retval) | 118 | if (retval) |
118 | return retval; | 119 | return retval; |
119 | 120 | ||
120 | hcd->has_tt = 1; | 121 | ehci_reset(ehci); |
121 | 122 | ||
122 | ehci_port_power(ehci, 0); | 123 | ehci_port_power(ehci, 0); |
123 | 124 | ||