diff options
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 4f89d7ffd53..9835e071394 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -240,6 +240,11 @@ static int ehci_reset (struct ehci_hcd *ehci) | |||
240 | int retval; | 240 | int retval; |
241 | u32 command = ehci_readl(ehci, &ehci->regs->command); | 241 | u32 command = ehci_readl(ehci, &ehci->regs->command); |
242 | 242 | ||
243 | /* If the EHCI debug controller is active, special care must be | ||
244 | * taken before and after a host controller reset */ | ||
245 | if (ehci->debug && !dbgp_reset_prep()) | ||
246 | ehci->debug = NULL; | ||
247 | |||
243 | command |= CMD_RESET; | 248 | command |= CMD_RESET; |
244 | dbg_cmd (ehci, "reset", command); | 249 | dbg_cmd (ehci, "reset", command); |
245 | ehci_writel(ehci, command, &ehci->regs->command); | 250 | ehci_writel(ehci, command, &ehci->regs->command); |
@@ -260,6 +265,9 @@ static int ehci_reset (struct ehci_hcd *ehci) | |||
260 | if (ehci_is_TDI(ehci)) | 265 | if (ehci_is_TDI(ehci)) |
261 | tdi_reset (ehci); | 266 | tdi_reset (ehci); |
262 | 267 | ||
268 | if (ehci->debug) | ||
269 | dbgp_external_startup(); | ||
270 | |||
263 | return retval; | 271 | return retval; |
264 | } | 272 | } |
265 | 273 | ||