On Thu, Mar 27, 2014 at 10:31:33AM +0000, Keerthy V wrote:
> Hi,
> 
> I am trying to send data to a USB device connected to a USB3.0 port over a 
> USB bulk end point using libusb APIs . It is failing failed with error 
> ERROR_IO.
> 
> The same device and the test program works fine on a USB2.0 port.
> 
> After enabling the XHCI debug options, I found that I am getting the 
> following errors:
> "Endpoint xxx not halted, refusing to reset Transfer error on endpoint"

Your userspace program is unconditionally sending a ClearHalt request
when the endpoint is not stalled.  That triggers a known bug in the xHCI
driver, where the host controller's toggle bits and the device's toggle
bits get out of sync.  This then causes endless transfer errors when the
host tries to communicate with that endpoint.  The only way to fix this
is to unplug and replug in the device.

Mathias (xHCI maintainer) has plans to implement a fix for this,
but it will probably not land until 3.16 or later.

I suggest you remove any unconditional ClearHalt requests from your
userspace program in the mean time.

Sarah Sharp

> I have tested in following kernel :
> 3.13.7
> 3.11.0-18
> 
> Both gave the same results. The test has been performed on USB 3.0 host 
> controller.
> 
> Can you please let me know the root cause and possible solutions?
> 
> Attached is the debug log.
> 
> Regards,
> Keerthy
> This message and any attachments may contain Cypress (or its subsidiaries) 
> confidential information. If it has been received in error, please advise the 
> sender and immediately delete this message.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to