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
