#1752 BLOC Trial-2: USB wireless suspend/resume failure at setup phase

Zarro Boogs per Child bugtracker at laptop.org
Tue Jun 19 10:31:48 EDT 2007


#1752: USB wireless suspend/resume failure at setup phase
-----------------------+----------------------------------------------------
  Reporter:  marcelo   |       Owner:  marcelo
      Type:  defect    |      Status:  new    
  Priority:  blocker   |   Milestone:  Trial-2
 Component:  wireless  |     Version:         
Resolution:            |    Keywords:         
  Verified:  0         |  
-----------------------+----------------------------------------------------
Changes (by jg):

  * priority:  normal => blocker
  * milestone:  Untriaged => Trial-2

Old description:

> 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.

New description:

 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.

-- 
Ticket URL: <http://dev.laptop.org/ticket/1752#comment:4>
One Laptop Per Child <http://laptop.org/>



More information about the Bugs mailing list