On 10/02/2013 01:14 PM, Daniel Mack wrote: > On 02.10.2013 12:49, Sebastian Andrzej Siewior wrote: >> * Daniel Mack | 2013-10-01 15:39:54 [+0200]: >> >>> Make musb_port_suspend() externally available, and call it when to host >>> goes into suspend. This allows the core to go into suspend while a >>> device is connected. >> >> Sorry for asking this stupid question but what is usally happening when >> the host goes to suspend and a device is connected? I think it is >> disconnected & re-enumerated and resume and this not what you want, >> right? > > It is usually put into USB suspend and the host preserves its state. > After resume, the usb storage driver, for example, will not register new > partitions but expect things to be as they were before. That is, your > previously mounted devices remain functional. > > However, the enumeration process has to be done again, because when the > device looses power, it can't memorize its address. > >> What happens if the device is unplugged while the host is suspended and >> not there on resume? > > That condition is detected and a full teardown of the connected drivers > is conducted. Try what happens on your notebook when you do that. > Embedded systems should behave just the same. I had the feeling that the USB device gets disconnected and re-enumerated on resume. But if you say that the ehci-hcd saves the state and keeps the device connected if it wasn't disconnected during suspend then there is no reason for musb to behave differently. > Daniel Sebastian -- 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