mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 21:54:06 +08:00
xhci: don't try to reset the host if it is unaccessible
There is no point in trying to reset the host controller by writing to its registers if host is removed and registers just return 0xffffffff bail out and return -ENODEV instead Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
99154fd3aa
commit
c11ae038d6
@ -167,6 +167,12 @@ int xhci_reset(struct xhci_hcd *xhci)
|
|||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
state = readl(&xhci->op_regs->status);
|
state = readl(&xhci->op_regs->status);
|
||||||
|
|
||||||
|
if (state == ~(u32)0) {
|
||||||
|
xhci_warn(xhci, "Host not accessible, reset failed.\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
if ((state & STS_HALT) == 0) {
|
if ((state & STS_HALT) == 0) {
|
||||||
xhci_warn(xhci, "Host controller not halted, aborting reset.\n");
|
xhci_warn(xhci, "Host controller not halted, aborting reset.\n");
|
||||||
return 0;
|
return 0;
|
||||||
@ -690,7 +696,6 @@ void xhci_stop(struct usb_hcd *hcd)
|
|||||||
xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
|
xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
|
||||||
xhci_halt(xhci);
|
xhci_halt(xhci);
|
||||||
xhci_reset(xhci);
|
xhci_reset(xhci);
|
||||||
|
|
||||||
spin_unlock_irq(&xhci->lock);
|
spin_unlock_irq(&xhci->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user