From f4806a53b321b3f3ee1d0a8150814463d766d518 Mon Sep 17 00:00:00 2001 From: Matthieu CASTET Date: Tue, 15 Feb 2011 18:40:28 +0100 Subject: [PATCH] --- yaml --- r: 235325 b: refs/heads/master c: bcf40815e0cda371cecc242398fe39b873bb1047 h: refs/heads/master i: 235323: 1dbe146857869006b2816cbf6c9acb60bd70f512 v: v3 --- [refs] | 2 +- trunk/drivers/usb/host/ehci-hcd.c | 7 ++++++- trunk/drivers/usb/host/ehci-orion.c | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index ba09ad720218..1f98712374be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e2904ee43c7009e6c4fc18738f15051312f22483 +refs/heads/master: bcf40815e0cda371cecc242398fe39b873bb1047 diff --git a/trunk/drivers/usb/host/ehci-hcd.c b/trunk/drivers/usb/host/ehci-hcd.c index 74dcf49bd015..4c77a818fd80 100644 --- a/trunk/drivers/usb/host/ehci-hcd.c +++ b/trunk/drivers/usb/host/ehci-hcd.c @@ -679,7 +679,12 @@ static int ehci_run (struct usb_hcd *hcd) hcd->uses_new_polling = 1; /* EHCI spec section 4.1 */ - if ((retval = ehci_reset(ehci)) != 0) { + /* + * TDI driver does the ehci_reset in their reset callback. + * Don't reset here, because configuration settings will + * vanish. + */ + if (!ehci_is_TDI(ehci) && (retval = ehci_reset(ehci)) != 0) { ehci_mem_cleanup(ehci); return retval; } diff --git a/trunk/drivers/usb/host/ehci-orion.c b/trunk/drivers/usb/host/ehci-orion.c index 0f87dc72820a..281e094e1c18 100644 --- a/trunk/drivers/usb/host/ehci-orion.c +++ b/trunk/drivers/usb/host/ehci-orion.c @@ -105,7 +105,8 @@ static int ehci_orion_setup(struct usb_hcd *hcd) struct ehci_hcd *ehci = hcd_to_ehci(hcd); int retval; - ehci_reset(ehci); + hcd->has_tt = 1; + retval = ehci_halt(ehci); if (retval) return retval; @@ -117,7 +118,7 @@ static int ehci_orion_setup(struct usb_hcd *hcd) if (retval) return retval; - hcd->has_tt = 1; + ehci_reset(ehci); ehci_port_power(ehci, 0);