Hi Oliver

>Sent: Monday, January 21, 2008 6:46 PM
>> >> I have a general query on EHCI manual suspend/resume behavior.
>> >>
>> >> For EHCI HCD, On doing a manual suspend of a device using sysfs 
>> >> power/level, what happens of the
>> >already submitted URBs?
>> >>
>> >> are the URBs completed with whatever data has been sent? Or
>> >> URB context is maintained and are restarted on a RESUME?
>> >
>> >The driver's suspend() method is called. It has to deal with outstanding
>> >URBs, either waiting briefly for them or canceling them. Likewise a driver
>> >is responsible for resubmitting URBs upon resume().
>> >
>> >This behavior is independent of the HCD used.
>>
>> For the case where struct hc_driver ehci_hc_driver.bus_suspend = 
>> ehci_bus_suspend() (mine is an
>EHCI hcd)
>>
>> I can see that ehci_bus_suspend() just halts the EHCI hcd, without deleting 
>> the qh or qtds? Is that
>right? And ehci_bus_resume() again starts the EHCI enabling the qhs.
>>
>> Does that mean if nothing is done to URBs in Class driver suspend function, 
>> the old URBs should
>continue to work on RESUME?
>
>The bus will not be suspend unless all devices on the bus are suspended. While

I think this behavior may happen for Autosuspend mode.
However my case is Manual mode and I understand that anytime the bus could be 
forcefully suspended.
In that case if there are pending URBs, will they stop and restart on a RESUME? 
 
>all devices on the bus are suspend no URBs can be in flight.
>In theory IIRC halting EHCI should have the effect you describe, but it should
>never happen.
>
>       Regards
>               Oliver
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to