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:
@@ -761,7 +761,7 @@ XHCI::SubmitControlRequest(Transfer *transfer)
|
|||||||
descriptor->trbs[index].status = TRB_2_IRQ(0);
|
descriptor->trbs[index].status = TRB_2_IRQ(0);
|
||||||
descriptor->trbs[index].flags = TRB_3_TYPE(TRB_TYPE_STATUS_STAGE)
|
descriptor->trbs[index].flags = TRB_3_TYPE(TRB_TYPE_STATUS_STAGE)
|
||||||
| ((directionIn && requestData->Length > 0) ? 0 : TRB_3_DIR_IN)
|
| ((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
|
// 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
|
// (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)
|
// set when using an Event Data TRB (as _LinkDescriptorForPipe does)
|
||||||
|
|||||||
Reference in New Issue
Block a user