xhci: cleanup error message if halting the host failed.
authorMathias Nyman <mathias.nyman@linux.intel.com>
Fri, 11 Nov 2016 13:13:11 +0000 (15:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Nov 2016 09:18:21 +0000 (10:18 +0100)
The old error message always stated that host was not halted
even after trying a certain time.

Host may fail the halt immediately as well with -ENODEV if device
is removed and returns 0xffffffff.

Use a more generic error message and show return value to know if we
failed with -ETIMEDOUT or -ENODEV

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci.c

index 1a4ca02729c274cb83762636e5556ca75e840144..b503189b98b04aa769136ef1e02a3c58cce80010 100644 (file)
@@ -113,12 +113,12 @@ int xhci_halt(struct xhci_hcd *xhci)
 
        ret = xhci_handshake(&xhci->op_regs->status,
                        STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC);
-       if (!ret) {
-               xhci->xhc_state |= XHCI_STATE_HALTED;
-               xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
-       } else
-               xhci_warn(xhci, "Host not halted after %u microseconds.\n",
-                               XHCI_MAX_HALT_USEC);
+       if (ret) {
+               xhci_warn(xhci, "Host halt failed, %d\n", ret);
+               return ret;
+       }
+       xhci->xhc_state |= XHCI_STATE_HALTED;
+       xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
        return ret;
 }