[coreboot-gerrit] New patch to review for coreboot: 5485aca libpayload: usb: xhci: Treat port reset as a port status change

Isaac Christensen (isaac.christensen@se-eng.com) gerrit at coreboot.org
Wed Oct 1 17:42:36 CEST 2014


Isaac Christensen (isaac.christensen at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7002

-gerrit

commit 5485acaf048932aacc5da9dafb50f01df1d2bec7
Author: Shawn Nematbakhsh <shawnn at chromium.org>
Date:   Mon Mar 10 14:46:06 2014 -0700

    libpayload: usb: xhci: Treat port reset as a port status change
    
    If a port is connected before and after an xhci controller reset, the
    PORTSC CSC bit may not be asserted. Add an additional check in
    xhci_rh_port_status_changed for the PRC bit so we can correctly handle
    ports in such a state.
    
    Signed-off-by: Shawn Nematbakhsh <shawnn at chromium.org>
    Change-Id: I2d623aae647ab13711badd7211ab467afdc69548
    Reviewed-on: https://chromium-review.googlesource.com/189394
    Reviewed-by: Julius Werner <jwerner at chromium.org>
    (cherry picked from commit ee7c3ea182b35bb6ce3c62f301c4515714f6e654)
    Signed-off-by: Isaac Christensen <isaac.christensen at se-eng.com>
---
 payloads/libpayload/drivers/usb/xhci_rh.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/payloads/libpayload/drivers/usb/xhci_rh.c b/payloads/libpayload/drivers/usb/xhci_rh.c
index 26bb4f9..fa118fe 100644
--- a/payloads/libpayload/drivers/usb/xhci_rh.c
+++ b/payloads/libpayload/drivers/usb/xhci_rh.c
@@ -51,7 +51,7 @@ xhci_rh_port_status_changed(usbdev_t *const dev, const int port)
 	xhci_t *const xhci = XHCI_INST(dev->controller);
 	volatile u32 *const portsc = &xhci->opreg->prs[port - 1].portsc;
 
-	const int changed = !!(*portsc & PORTSC_CSC);
+	const int changed = !!(*portsc & (PORTSC_CSC | PORTSC_PRC));
 	/* always clear all the status change bits */
 	*portsc = (*portsc & PORTSC_RW_MASK) | 0x00ef0000;
 	return changed;



More information about the coreboot-gerrit mailing list