usb/xhci: Fix timeout logic
This fixes a logic bug in how timeouts are reported back. In the timeout case, the original code would return -1 instead of 0. All call sites expect a return value of 0 as the timeout indicator. Signed-off-by: Caveh Jalali <caveh@chromium.org> Change-Id: I81a888aa0a1544e55e6a680be8f3b7f6e0d87812 Reviewed-on: https://review.coreboot.org/c/coreboot/+/41854 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
0a9e72e87e
commit
96f231ac4b
@@ -129,7 +129,12 @@ xhci_switchback_ppt_ports(pcidev_t addr)
|
|||||||
static long
|
static long
|
||||||
xhci_handshake(volatile u32 *const reg, u32 mask, u32 wait_for, long timeout_us)
|
xhci_handshake(volatile u32 *const reg, u32 mask, u32 wait_for, long timeout_us)
|
||||||
{
|
{
|
||||||
while ((*reg & mask) != wait_for && timeout_us--) udelay(1);
|
if (timeout_us <= 0)
|
||||||
|
return 0;
|
||||||
|
while ((*reg & mask) != wait_for && timeout_us != 0) {
|
||||||
|
--timeout_us;
|
||||||
|
udelay(1);
|
||||||
|
}
|
||||||
return timeout_us;
|
return timeout_us;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user