diff options
author | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2009-09-16 19:42:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-10-09 16:52:06 -0400 |
commit | e4ab05df573834b8c70d19db426b7d6286782c1d (patch) | |
tree | af8c7341677690d9317758d6f6738e9545d9b091 /drivers/usb | |
parent | 35f76e897d67fb62b4ec0be01fc0caaeb7f90108 (diff) |
USB: xhci: Stop debugging polling loop when HC dies.
If the host controller card is removed from the system, stop the timer
function to debug the xHCI rings.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/xhci-hcd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hcd.c b/drivers/usb/host/xhci-hcd.c index 99911e727e0b..8719a3f6851d 100644 --- a/drivers/usb/host/xhci-hcd.c +++ b/drivers/usb/host/xhci-hcd.c | |||
@@ -335,6 +335,12 @@ void xhci_event_ring_work(unsigned long arg) | |||
335 | spin_lock_irqsave(&xhci->lock, flags); | 335 | spin_lock_irqsave(&xhci->lock, flags); |
336 | temp = xhci_readl(xhci, &xhci->op_regs->status); | 336 | temp = xhci_readl(xhci, &xhci->op_regs->status); |
337 | xhci_dbg(xhci, "op reg status = 0x%x\n", temp); | 337 | xhci_dbg(xhci, "op reg status = 0x%x\n", temp); |
338 | if (temp == 0xffffffff) { | ||
339 | xhci_dbg(xhci, "HW died, polling stopped.\n"); | ||
340 | spin_unlock_irqrestore(&xhci->lock, flags); | ||
341 | return; | ||
342 | } | ||
343 | |||
338 | temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); | 344 | temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); |
339 | xhci_dbg(xhci, "ir_set 0 pending = 0x%x\n", temp); | 345 | xhci_dbg(xhci, "ir_set 0 pending = 0x%x\n", temp); |
340 | xhci_dbg(xhci, "No-op commands handled = %d\n", xhci->noops_handled); | 346 | xhci_dbg(xhci, "No-op commands handled = %d\n", xhci->noops_handled); |