diff options
author | Andiry Xu <andiry.xu@amd.com> | 2011-05-05 06:13:58 -0400 |
---|---|---|
committer | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2011-05-09 12:34:47 -0400 |
commit | 51eb01a746089f2c3d9b87f870353772d2fb4c37 (patch) | |
tree | e844a557ef8f1f841969dabe1b88ee9429786079 /drivers/usb/host | |
parent | b83cdc8f4d94a127e9319bef37f384b01ecca72e (diff) |
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>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/xhci-mem.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index a4fc4d929385..543833b9dbad 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c | |||
@@ -1246,8 +1246,15 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, | |||
1246 | * including link TRBs, No-op TRBs, and Event data TRBs. Since we don't | 1246 | * including link TRBs, No-op TRBs, and Event data TRBs. Since we don't |
1247 | * use Event Data TRBs, and we don't chain in a link TRB on short | 1247 | * use Event Data TRBs, and we don't chain in a link TRB on short |
1248 | * transfers, we're basically dividing by 1. | 1248 | * transfers, we're basically dividing by 1. |
1249 | * | ||
1250 | * xHCI 1.0 specification indicates that the Average TRB Length should | ||
1251 | * be set to 8 for control endpoints. | ||
1249 | */ | 1252 | */ |
1250 | ep_ctx->tx_info |= cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(max_esit_payload)); | 1253 | if (usb_endpoint_xfer_control(&ep->desc) && xhci->hci_version == 0x100) |
1254 | ep_ctx->tx_info |= cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(8)); | ||
1255 | else | ||
1256 | ep_ctx->tx_info |= | ||
1257 | cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(max_esit_payload)); | ||
1251 | 1258 | ||
1252 | /* FIXME Debug endpoint context */ | 1259 | /* FIXME Debug endpoint context */ |
1253 | return 0; | 1260 | return 0; |