-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, 09 Jan 2013 12:00:05 +0200 Igor Grinberg <grinberg@xxxxxxxxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi Neil, > > On 01/09/13 00:29, 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). > > Which PHY is this (vendor/model)? Hi Igor, it is the SMSC USB3322 http://www.smsc.com/media/Downloads_Public/Data_Sheets/3320.pdf BTW I subsequently discovered that keeping USBHOST out off off_mode only sometimes avoid the problem, not always. So there are probably multiple issues :-( NeilBrown > > > > > 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? > > > > Thanks in advance, > > NeilBrown > > > > > > > > diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c > > index 23cec57..522405e 100644 > > --- a/drivers/mfd/omap-usb-host.c > > +++ b/drivers/mfd/omap-usb-host.c > > @@ -100,6 +100,10 @@ struct usbhs_hcd_omap { > > > > void __iomem *uhh_base; > > > > + struct { > > + unsigned hostconfig; > > + } context; > > + > > struct usbhs_omap_platform_data platdata; > > > > u32 usbhs_rev; > > @@ -300,6 +304,10 @@ static int usbhs_runtime_resume(struct device *dev) > > clk_enable(omap->utmi_p1_fck); > > clk_enable(omap->utmi_p2_fck); > > > > + usbhs_write(omap->uhh_base, > > + OMAP_UHH_HOSTCONFIG, > > + omap->context.hostconfig); > > + > > spin_unlock_irqrestore(&omap->lock, flags); > > > > return 0; > > @@ -319,6 +327,8 @@ static int usbhs_runtime_suspend(struct device *dev) > > } > > > > spin_lock_irqsave(&omap->lock, flags); > > + omap->context.hostconfig = usbhs_read(omap->uhh_base, > > + OMAP_UHH_HOSTCONFIG); > > > > if (is_ehci_tll_mode(pdata->port_mode[0])) > > clk_disable(omap->usbhost_p1_fck); > > - -- > Regards, > Igor. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.17 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQIcBAEBAgAGBQJQ7T+kAAoJEBDE8YO64Efaj8YQAI5nOE9vvf8wxbu5IXTxaMxn > 6B+g2m/zkMlyVNL5hTrwkPkP4CTBwvsGCZYkZT5JS3KM+R+TuyIX07+eM59Ie0Po > u1CCn2XKZY2CP53b3nAtgk9Phxwruf5fDjEu9QiQapdUpbiTWmIn8W3CVye241O2 > wXBKAXszX1bD81NFNY+Jm5Us5uGHNTtNtqe78Rng7BTvmaaNgE61PurFclgn0xQb > IO5E7eyq7TG1u/IBhge2jlZGx2BbLcVsrQI3WyuE2L6F+MRgAKBDD7K8uHTfxPyM > eXAk/u5tbA21t1mTIXk19N4c0YVgeFW2kKQOPShKywy9J6k3tE5LE4yUjooo4ZeS > TlIf7HFcp15N3FfX90FOYsQOXILnoNL6a8SOK3gU+iVxZU/4VohKOXBlMjuZ7o10 > 5FnglPaHjsEaa1DgB/FcnYh3OO33mODJsckUhi5GiIlrbm70JspfWShZfln1k8FS > SwClmyb6FCiqBOcRJ2uS1KTwObzYV9WeuPGCTXC5d4UBB57eRcGcX/NvSftV57mX > jcSEle93kgZx1EiG53Vwd29oV9nU6SJECF7Q8CqulDEQVr76E7Xh8Z1CrsD+BhKe > XuFa3zdtMg1SZO/ctcTIPPpElCVPF1FChX2lY9fCIdK2luHNrOs4GyrozCGXQcXO > ZMFiiStsjr021CGqQUFw > =yIA2 > -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIVAwUBUO1EMznsnt1WYoG5AQJ9Gg//Qwx5P/VjOi+9TDXIGr10OqldLEQKG4zv Dbwhw5l9DR85JIuF+m5xVXUe9IWJZ0UCasi61LtkRJVGW8U7Lv0O2mmXcYHoQ9zt diph8SVM9ZTh4SAaz2iiHeJ1Sqz0WkiZ47Kv1C0Q/n9MyFqKKG7Nxg5UAyAj39x4 pa8vsBGcPmwn5U/dUPQBxs3QKdp9aI3i2I6Q6vObRLYLJSvxAeXkGYfrmMy/NoZz RNhkLhVTajPCYTBcPw+zH06Pv8VF+i/UwFggnVl+uW+6LrIpKbaLa7CMntXmrSgz fi7y1LLiQuE7qK26IizLu/XIapb0tPGy28AebYwSbjFTaqHPNmlLAzyfww3lBteI PS76DulKiR4YX58v0KGKITcYLKK3mUliOETcWylot2eTyqbP9m0Y3nX57AEDi0+N FBBuoG4EKUQaLf5CnjF6ViMttUfvcfwL+Vrn+4VaYndS9S9w5IXTii5b1OcuhJaZ aGS+Tm/Mwa1uNQWBjujc/DdvwKZRrRilHTBH4w/rHRwxNTqKAxWmq72162efpxdR JxkHrPTEZZZwLewPXmTbD1+h50284apAw+D2PERFiB+Fh4ZVzsLIcBcUIZ3OT4L1 AlrqYC0wAS2RgjhvmveR360i8DS1SXMMafonrLhrwRu7oe1uzltKmnNX21Sp76vB gM5LIokwosA= =8VnD -----END PGP SIGNATURE----- ÿôèº{.nÇ+?·?®??+%?Ëÿ±éݶ¥?wÿº{.nÇ+?·¥?{±þ??§ø§¶?¡Ü¨}©?²Æ zÚ&j:+v?¨þø¯ù®w¥þ?à2?Þ?¨èÚ&¢)ß¡«a¶Úÿÿûàz¿äz¹Þ?ú+?ù???Ý¢jÿ?wèþf