On 01/09/2013 12:29 AM, NeilBrown wrote: > > Hi, > I'm trying to get off_mode working reliably on my gta04 mobile phone. > > My current stumbling block is USB. The "Option" GSM module is attached via > USB (there is a separate transceiver chip attached to port 1 which is placed > in OMAP_EHCI_PORT_MODE_PHY). > > After a suspend/resume cycle with off_mode enabled the GSM module disappears. > i.e. 'lsusb' doesn't see it any more and the various ttyHSxx devices don't > exist. > Without off mode, the modem always appears after resume. > > I discovered that the registers set by: > > drivers/mfd/omap-usb-host.c > > are not maintained across as suspend/resume so I added the following patch > (which I can make a formal submission of if it looks right to others), but > that didn't help (or didn't help enough). > > If I > > echo 1 > /sys/kernel/debug/pm_debug/usbhost_pwrdm/suspend > > thus keeping just the USBHOST power domain out of off_mode, the GSM module > doesn't disappear. So it seems that some context in the usbhost domain is > not being save and restored. > > This is as far as I can get. Can someone suggest where I should look to find > out what is not being saved/restored properly, and how to go about saving and > restoring? You need to ensure that USBHOST/TLL context is saved as per the Save and Restore sequence see section "USBHOST/USBTLL Save-and-Restore Management" in the OMAP Technical Reference Manual. The basic idea there is that software does the context saving into SAR RAM before entering OFF mode and hardware automatically restores the context after coming out of OFF mode. But that alone is not enough for USB host to work. We need to make sure we have covered all the erratas. There are a number of them which are not covered yet in mainline. USB remote wakeup is another challenge with OMAP USB host (while in OFF mode). The usual workaround here is to use a GPIO as a wakeup line from the modem. regards, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html