On Wed, 26 Sep 2012, Peter Chen wrote: > >> Currently, both ehci_hub_control and ehci_bus_suspend will go bus suspend > >> routine when CONFIG_USB_SUSPEND is defined, and I am not sure if > >> PSE and ASE is cleared before we let bus go to suspend (at ehci_hub_control). > > > > Where does ehci_hub_control put the bus into suspend? It suspends only > > individual ports, not the whole bus. > > > > If if there's only one port, suspending that port does not suspend the > > whole bus. The frame counter continues to update and the root hub will > > continue to respond to URBs. > > > > From the code, the URB for roothub just read/write register portsc, it has not > traffic on usb bus. > > Take my controller as an example, it is chipidea (Synopsis now) single > port controller, > this single port is just controller. > > Set portsc.suspendM will stop the SOF, but frame counter will not stop > until phy clock is > disabled. Are you asking whether ASE and PSE are cleared when ehci_hub_control() puts the only port into suspend mode? They may or may not be clear. But if they aren't, the watchdog timer makes sure that they will be cleared no more than about 15 ms later (in the 3.6 kernel; earlier kernels can take up to 50 ms). Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html