mirror of
https://github.com/opnsense/src.git
synced 2026-04-22 06:39:32 -04:00
XHCI: clear warm and port reset
It seems we do not clear UPS_C_BH_PORT_RESET and UPS_C_PORT_RESET conditions after warm or port reset. Add that code. Obtained from: an old patch mainly debugging other problems MFC after: 2 weeks Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D35483
This commit is contained in:
parent
447c418da0
commit
8f892e9bee
1 changed files with 15 additions and 0 deletions
|
|
@ -1088,6 +1088,21 @@ uhub_explore(struct usb_device *udev)
|
|||
if (err != USB_ERR_NORMAL_COMPLETION)
|
||||
retval = err;
|
||||
}
|
||||
if (udev->speed == USB_SPEED_SUPER &&
|
||||
(sc->sc_st.port_change & UPS_C_BH_PORT_RESET) != 0) {
|
||||
DPRINTF("Warm reset finished on port %u.\n", portno);
|
||||
err = usbd_req_clear_port_feature(
|
||||
udev, NULL, portno, UHF_C_BH_PORT_RESET);
|
||||
if (err != USB_ERR_NORMAL_COMPLETION)
|
||||
retval = err;
|
||||
}
|
||||
if (sc->sc_st.port_change & UPS_C_PORT_RESET) {
|
||||
DPRINTF("Port reset finished on port %u.\n", portno);
|
||||
err = usbd_req_clear_port_feature(
|
||||
udev, NULL, portno, UHF_C_PORT_RESET);
|
||||
if (err != USB_ERR_NORMAL_COMPLETION)
|
||||
retval = err;
|
||||
}
|
||||
|
||||
if (uhub_explore_sub(sc, up) == USB_ERR_NORMAL_COMPLETION) {
|
||||
/* explore succeeded - reset restart counter */
|
||||
|
|
|
|||
Loading…
Reference in a new issue