mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-30 16:51:41 +00:00
Check the XHCI event ring regardless of the XHCI status register
value. The "Intel Lynx Point" XHCI controller found in the MBP2013 has been observed to not always set the event interrupt bit while there are events to consume in the event ring. MFC after: 1 week Tested by: Huang Wen Hui <huanghwh@gmail.com>
This commit is contained in:
parent
aacea395b4
commit
d08bc9e548
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=260388
@ -1582,8 +1582,6 @@ xhci_interrupt(struct xhci_softc *sc)
|
||||
USB_BUS_LOCK(&sc->sc_bus);
|
||||
|
||||
status = XREAD4(sc, oper, XHCI_USBSTS);
|
||||
if (status == 0)
|
||||
goto done;
|
||||
|
||||
/* acknowledge interrupts */
|
||||
|
||||
@ -1591,10 +1589,8 @@ xhci_interrupt(struct xhci_softc *sc)
|
||||
|
||||
DPRINTFN(16, "real interrupt (status=0x%08x)\n", status);
|
||||
|
||||
if (status & XHCI_STS_EINT) {
|
||||
/* check for event(s) */
|
||||
xhci_interrupt_poll(sc);
|
||||
}
|
||||
/* check for event(s) */
|
||||
xhci_interrupt_poll(sc);
|
||||
|
||||
if (status & (XHCI_STS_PCD | XHCI_STS_HCH |
|
||||
XHCI_STS_HSE | XHCI_STS_HCE)) {
|
||||
@ -1618,7 +1614,6 @@ xhci_interrupt(struct xhci_softc *sc)
|
||||
__FUNCTION__);
|
||||
}
|
||||
}
|
||||
done:
|
||||
USB_BUS_UNLOCK(&sc->sc_bus);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user