diff options
author | Geoff Levand <geoff@infradead.org> | 2011-11-22 18:04:45 -0800 |
---|---|---|
committer | Geoff Levand <geoff@infradead.org> | 2011-12-08 09:38:53 -0800 |
commit | 876e0df902c726408c84b75dab673a90fd492e1d (patch) | |
tree | 9af8a84b8bedb6e727067e57355be5996d4bcabd /drivers/usb/host/ehci-hcd.c | |
parent | 5611cc4572e889b62a7b4c72a413536bf6a9c416 (diff) | |
download | lwn-876e0df902c726408c84b75dab673a90fd492e1d.tar.gz lwn-876e0df902c726408c84b75dab673a90fd492e1d.zip |
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.c | 11 |
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) static int ehci_run (struct usb_hcd *hcd) { struct ehci_hcd *ehci = hcd_to_ehci (hcd); - int retval; u32 temp; u32 hcc_params; hcd->uses_new_polling = 1; /* EHCI spec section 4.1 */ - /* - * 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; - } + ehci_writel(ehci, ehci->periodic_dma, &ehci->regs->frame_list); ehci_writel(ehci, (u32)ehci->async->qh_dma, &ehci->regs->async_next); |