From 4e792e431a92f12f2be7acb20d78f7f2637d659c Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Fri, 20 Sep 2019 10:56:13 +0000 Subject: [PATCH] The maximum TD size is 31 and not 15. Found at: EuroBSDcon 2019 MFC after: 1 week Sponsored by: Mellanox Technologies --- sys/dev/usb/controller/xhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c index 0a1e5c95c41..1bfdddd7d71 100644 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -2003,7 +2003,7 @@ restart: /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last data TRB in the chain */ - td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); + td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(31)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); /* remove CHAIN-BIT from last LINK TRB */ td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT);