Ticket #1752 (closed defect: fixed)
USB wireless suspend/resume failure at setup phase
|Reported by:||marcelo||Owned by:||wad|
|Priority:||blocker||Milestone:||8.2.0 (was Update.2)|
|Keywords:||power||Cc:||jordan.crouse@…, wmb@…, luisca@…, javier@…, rchokshi@…, rsmith, GR-Wireless-OLPC@…, dilinger, marcelo@…, jg|
|Deployments affected:||Blocked By:|
Description (last modified by jg) (diff)
Failure at different "commands" of the SETUP phase, such as SetAddress, GetDescriptor(Device), GetDescriptor(Configuration).
By analyzing USB traces, we can see that the SETUP transaction for these commands is usually successful, but subsequent steps (such as IN transactions in response to SETUP, or PING transactions in response to OUT) continue to happen for a while and then stop.
3ms after the last IN or PING transaction is seen, the device is supposed to enter suspended state (and the analyzer indicates that with "SUSPENDED (IDLE)"). The USB software then receives errors from the EHCI controller for these commands.
For the successful case, we see that the host controller has issued "non-stop" IN or PING transactions until it got an ACK from the device, which prevents the suspended state.
So from my understand of the USB protocol the host controller is at fault here, it should issue IN/PING until an ACK is received.
At http://dev.laptop.org/~marcelo/debug/ you can find:
success_2622-rc4.ufo: successfull suspend/resume cycle
set_address_2_failure.ufo: failure at the SetAddress(2) stage.
USB Explorer 200 Windows software available at http://www.ellisys.com is necessary to decode the traces.