aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-hcd.c
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2011-11-22 21:04:45 -0500
committerGeoff Levand <geoff@infradead.org>2011-12-08 12:38:53 -0500
commit876e0df902c726408c84b75dab673a90fd492e1d (patch)
tree9af8a84b8bedb6e727067e57355be5996d4bcabd /drivers/usb/host/ehci-hcd.c
parent5611cc4572e889b62a7b4c72a413536bf6a9c416 (diff)
usb: Remove ehci_reset call from ehci_run
Remove the ehci_reset() call done in the ehci_run() routine of the USB EHCI host controller driver and add an ehci_reset() call to the probe processing of all EHCI platform drivers that do not already call ehci_reset(). The call to ehci_reset() from ehci_run() was problematic for several platform drivers, and unnecessary for others. This change moves the decision to call ehci_reset() at driver startup to the platform driver code. Signed-off-by: Geoff Levand <geoff@infradead.org> Acked-by: Alan Stern <stern@rowland.harvard.edu>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r--drivers/usb/host/ehci-hcd.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 3ff9f82f7263..46dccbf85c1a 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -677,22 +677,13 @@ static int ehci_init(struct usb_hcd *hcd)
677static int ehci_run (struct usb_hcd *hcd) 677static int ehci_run (struct usb_hcd *hcd)
678{ 678{
679 struct ehci_hcd *ehci = hcd_to_ehci (hcd); 679 struct ehci_hcd *ehci = hcd_to_ehci (hcd);
680 int retval;
681 u32 temp; 680 u32 temp;
682 u32 hcc_params; 681 u32 hcc_params;
683 682
684 hcd->uses_new_polling = 1; 683 hcd->uses_new_polling = 1;
685 684
686 /* EHCI spec section 4.1 */ 685 /* EHCI spec section 4.1 */
687 /* 686
688 * TDI driver does the ehci_reset in their reset callback.
689 * Don't reset here, because configuration settings will
690 * vanish.
691 */
692 if (!ehci_is_TDI(ehci) && (retval = ehci_reset(ehci)) != 0) {
693 ehci_mem_cleanup(ehci);
694 return retval;
695 }
696 ehci_writel(ehci, ehci->periodic_dma, &ehci->regs->frame_list); 687 ehci_writel(ehci, ehci->periodic_dma, &ehci->regs->frame_list);
697 ehci_writel(ehci, (u32)ehci->async->qh_dma, &ehci->regs->async_next); 688 ehci_writel(ehci, (u32)ehci->async->qh_dma, &ehci->regs->async_next);
698 689