xHCI 1.0: Isoch endpoint CErr field set
authorAndiry Xu <andiry.xu@amd.com>
Thu, 5 May 2011 10:14:00 +0000 (18:14 +0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Mon, 9 May 2011 16:34:47 +0000 (09:34 -0700)
xHCI 1.0 specification specifies that CErr does not apply to Isoch endpoints
and shall be set to '0' for Isoch endpoints.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/host/xhci-mem.c

index 543833b9dbad94a5fdc8e46ea04b32d47f79989b..04145740686c296fc9f438e2ea133b423bbf0562 100644 (file)
@@ -1190,12 +1190,12 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
        /* FIXME dig Mult and streams info out of ep companion desc */
 
        /* Allow 3 retries for everything but isoc;
-        * error count = 0 means infinite retries.
+        * CErr shall be set to 0 for Isoch endpoints.
         */
        if (!usb_endpoint_xfer_isoc(&ep->desc))
                ep_ctx->ep_info2 = cpu_to_le32(ERROR_COUNT(3));
        else
-               ep_ctx->ep_info2 = cpu_to_le32(ERROR_COUNT(1));
+               ep_ctx->ep_info2 = cpu_to_le32(ERROR_COUNT(0));
 
        ep_ctx->ep_info2 |= cpu_to_le32(xhci_get_endpoint_type(udev, ep));