xhci: Remove references to HC_STATE_HALT.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 11 Mar 2011 16:47:33 +0000 (08:47 -0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Mon, 14 Mar 2011 01:07:10 +0000 (18:07 -0700)
The xHCI driver doesn't ever test hcd->state for HC_STATE_HALT.  The USB
core recently stopped using it internally, so there's no point in setting
it in the driver.  We still need to set HC_STATE_RUNNING in order to make
it past the USB core's hcd->state check in register_roothub().

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.c

index 3264d62..6bca252 100644 (file)
@@ -819,8 +819,7 @@ void xhci_stop_endpoint_command_watchdog(unsigned long arg)
        if (ret < 0) {
                /* This is bad; the host is not responding to commands and it's
                 * not allowing itself to be halted.  At least interrupts are
-                * disabled, so we can set HC_STATE_HALT and notify the
-                * USB core.  But if we call usb_hc_died(), it will attempt to
+                * disabled. If we call usb_hc_died(), it will attempt to
                 * disconnect all device drivers under this host.  Those
                 * disconnect() methods will wait for all URBs to be unlinked,
                 * so we must complete them.
@@ -865,7 +864,6 @@ void xhci_stop_endpoint_command_watchdog(unsigned long arg)
                }
        }
        spin_unlock(&xhci->lock);
-       xhci_to_hcd(xhci)->state = HC_STATE_HALT;
        xhci_dbg(xhci, "Calling usb_hc_died()\n");
        usb_hc_died(xhci_to_hcd(xhci));
        xhci_dbg(xhci, "xHCI host controller is dead.\n");
@@ -2113,7 +2111,6 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd)
                xhci_warn(xhci, "WARNING: Host System Error\n");
                xhci_halt(xhci);
 hw_died:
-               xhci_to_hcd(xhci)->state = HC_STATE_HALT;
                spin_unlock(&xhci->lock);
                return -ESHUTDOWN;
        }
index 8dfa67f..63b8db5 100644 (file)
@@ -95,7 +95,6 @@ void xhci_quiesce(struct xhci_hcd *xhci)
  * HC will complete any current and actively pipelined transactions, and
  * should halt within 16 ms of the run/stop bit being cleared.
  * Read HC Halted bit in the status register to see when the HC is finished.
- * XXX: shouldn't we set HC_STATE_HALT here somewhere?
  */
 int xhci_halt(struct xhci_hcd *xhci)
 {
@@ -134,7 +133,7 @@ int xhci_start(struct xhci_hcd *xhci)
 }
 
 /*
- * Reset a halted HC, and set the internal HC state to HC_STATE_HALT.
+ * Reset a halted HC.
  *
  * This resets pipelines, timers, counters, state machines, etc.
  * Transactions will be terminated immediately, and operational registers
@@ -156,8 +155,6 @@ int xhci_reset(struct xhci_hcd *xhci)
        command = xhci_readl(xhci, &xhci->op_regs->command);
        command |= CMD_RESET;
        xhci_writel(xhci, command, &xhci->op_regs->command);
-       /* XXX: Why does EHCI set this here?  Shouldn't other code do this? */
-       xhci_to_hcd(xhci)->state = HC_STATE_HALT;
 
        ret = handshake(xhci, &xhci->op_regs->command,
                        CMD_RESET, 0, 250 * 1000);