From: Kevin O'Connor Date: Fri, 18 Dec 2015 17:56:33 +0000 (-0500) Subject: xhci: Improve port status change debugging X-Git-Tag: rel-1.10.0~134 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=49fb0349b886c0d94ca9978356fc74f67682588f;p=seabios.git xhci: Improve port status change debugging Report the port state on a port status change notification. Clear the change bits so further change notifications are delivered. Signed-off-by: Kevin O'Connor --- diff --git a/src/hw/usb-xhci.c b/src/hw/usb-xhci.c index 654feba..5f44239 100644 --- a/src/hw/usb-xhci.c +++ b/src/hw/usb-xhci.c @@ -658,9 +658,15 @@ static void xhci_process_events(struct usb_xhci_s *xhci) } case ER_PORT_STATUS_CHANGE: { - u32 portid = (etrb->ptr_low >> 24) & 0xff; - dprintf(3, "%s: status change port #%d\n", - __func__, portid); + u32 port = ((etrb->ptr_low >> 24) & 0xff) - 1; + // Read status, and clear port status change bits + u32 portsc = readl(&xhci->pr[port].portsc); + u32 pclear = (((portsc & ~(XHCI_PORTSC_PED|XHCI_PORTSC_PR)) + & ~(XHCI_PORTSC_PLS_MASK<pr[port].portsc, pclear); + + xhci_print_port_state(3, __func__, port, portsc); break; } default: