xHCI 1.0: Control endpoint average TRB length field set
xHCI 1.0 specification indicates that software should set Average TRB Length to '8' for control endpoints. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
This commit is contained in:
Родитель
b83cdc8f4d
Коммит
51eb01a746
|
@ -1246,8 +1246,15 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
|
||||||
* including link TRBs, No-op TRBs, and Event data TRBs. Since we don't
|
* including link TRBs, No-op TRBs, and Event data TRBs. Since we don't
|
||||||
* use Event Data TRBs, and we don't chain in a link TRB on short
|
* use Event Data TRBs, and we don't chain in a link TRB on short
|
||||||
* transfers, we're basically dividing by 1.
|
* transfers, we're basically dividing by 1.
|
||||||
|
*
|
||||||
|
* xHCI 1.0 specification indicates that the Average TRB Length should
|
||||||
|
* be set to 8 for control endpoints.
|
||||||
*/
|
*/
|
||||||
ep_ctx->tx_info |= cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(max_esit_payload));
|
if (usb_endpoint_xfer_control(&ep->desc) && xhci->hci_version == 0x100)
|
||||||
|
ep_ctx->tx_info |= cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(8));
|
||||||
|
else
|
||||||
|
ep_ctx->tx_info |=
|
||||||
|
cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(max_esit_payload));
|
||||||
|
|
||||||
/* FIXME Debug endpoint context */
|
/* FIXME Debug endpoint context */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче