Fix regression issue after r259248:

Some Intel XHCI controlles timeout processing so-called "TRBs" when
the final LINK TRB of a so-called "TD" has the CHAIN-BIT set.

MFC after:	1 week
Tested by:	glebius @
This commit is contained in:
Hans Petter Selasky 2013-12-16 10:50:13 +00:00
parent 1871769f1f
commit 6f0468df7a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=259462

View File

@ -1942,6 +1942,8 @@ xhci_setup_generic_chain_sub(struct xhci_std_temp *temp)
/* 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].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);
usb_pc_cpu_flush(td->page_cache);