]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: xhci: Clear XHCI_STATE_DYING on start
authorRoger Quadros <rogerq@ti.com>
Mon, 21 Sep 2015 14:46:13 +0000 (17:46 +0300)
committerZefan Li <lizefan@huawei.com>
Wed, 27 Apr 2016 10:55:23 +0000 (18:55 +0800)
commit e5bfeab0ad515b4f6df39fe716603e9dc6d3dfd0 upstream.

For whatever reason if XHCI died in the previous instant
then it will never recover on the next xhci_start unless we
clear the DYING flag.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/usb/host/xhci.c

index fd52e1efd6ca55c593a9075a6385dbf1d8642d0f..88be7a51df52bb630ff4b86309cf51d74841ce4c 100644 (file)
@@ -141,7 +141,8 @@ static int xhci_start(struct xhci_hcd *xhci)
                                "waited %u microseconds.\n",
                                XHCI_MAX_HALT_USEC);
        if (!ret)
-               xhci->xhc_state &= ~XHCI_STATE_HALTED;
+               xhci->xhc_state &= ~(XHCI_STATE_HALTED | XHCI_STATE_DYING);
+
        return ret;
 }