XHCI: Set the ENT bit on the Status stage TRB for Control transfers.
Otherwise, it may deschedule this pipe without evaluating the Event Data TRB and generating the interrupt. Should fix the "slowness" issue of #15115.
This commit is contained in:
parent
4f8124c5e3
commit
f861a8596a
@ -761,7 +761,7 @@ XHCI::SubmitControlRequest(Transfer *transfer)
|
||||
descriptor->trbs[index].status = TRB_2_IRQ(0);
|
||||
descriptor->trbs[index].flags = TRB_3_TYPE(TRB_TYPE_STATUS_STAGE)
|
||||
| ((directionIn && requestData->Length > 0) ? 0 : TRB_3_DIR_IN)
|
||||
| TRB_3_CHAIN_BIT | TRB_3_CYCLE_BIT;
|
||||
| TRB_3_CHAIN_BIT | TRB_3_ENT_BIT | TRB_3_CYCLE_BIT;
|
||||
// Status Stage is an OUT transfer when the device is sending data
|
||||
// (XHCI 1.2 § 4.11.2.2 Table 4-7 p213), and the CHAIN bit must be
|
||||
// set when using an Event Data TRB (as _LinkDescriptorForPipe does)
|
||||
|
Loading…
Reference in New Issue
Block a user