mirror of
https://github.com/opnsense/src.git
synced 2026-04-23 07:07:24 -04:00
- Fix a bug where the TLBPC value was forced to being odd for IN
direction isochronous transfers. - Remove setting of fields which does not belong to the respective TRBs. These fields are currently set as zero and this is more a cosmetic change. MFC after: 3 days Submitted by: Horse Ma <HMa@wyse.com>
This commit is contained in:
parent
c23c960364
commit
c73bbf989d
1 changed files with 5 additions and 11 deletions
|
|
@ -1849,31 +1849,25 @@ restart:
|
|||
XHCI_TRB_3_ISO_SIA_BIT;
|
||||
}
|
||||
if (temp->direction == UE_DIR_IN)
|
||||
dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
|
||||
dword |= XHCI_TRB_3_ISP_BIT;
|
||||
break;
|
||||
case XHCI_TRB_TYPE_DATA_STAGE:
|
||||
dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_DATA_STAGE) |
|
||||
XHCI_TRB_3_TBC_SET(temp->tbc) |
|
||||
XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_DATA_STAGE);
|
||||
if (temp->direction == UE_DIR_IN)
|
||||
dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
|
||||
break;
|
||||
case XHCI_TRB_TYPE_STATUS_STAGE:
|
||||
dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_STATUS_STAGE) |
|
||||
XHCI_TRB_3_TBC_SET(temp->tbc) |
|
||||
XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_STATUS_STAGE);
|
||||
if (temp->direction == UE_DIR_IN)
|
||||
dword |= XHCI_TRB_3_DIR_IN;
|
||||
break;
|
||||
default: /* XHCI_TRB_TYPE_NORMAL */
|
||||
dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) |
|
||||
XHCI_TRB_3_TBC_SET(temp->tbc) |
|
||||
XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
|
||||
XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL);
|
||||
if (temp->direction == UE_DIR_IN)
|
||||
dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
|
||||
dword |= XHCI_TRB_3_ISP_BIT;
|
||||
break;
|
||||
}
|
||||
td->td_trb[x].dwTrb3 = htole32(dword);
|
||||
|
|
|
|||
Loading…
Reference in a new issue