Messages in this thread Patch in this message | | | Date | Mon, 5 Dec 2011 08:43:42 +1100 | From | NeilBrown <> | Subject | Re: [PATCH] MFD: TWL: add power off functionality |
| |
On Sun, 4 Dec 2011 21:58:59 +1100 NeilBrown <neilb@suse.de> wrote:
> On Sun, 04 Dec 2011 11:56:44 +0200 Igor Grinberg <grinberg@compulab.co.il> > wrote: > > > Hi Neil, > > > > On 12/03/11 03:35, NeilBrown wrote: > > > On Sun, 27 Nov 2011 11:42:17 +0200 Igor Grinberg <grinberg@compulab.co.il> > > > wrote: > > > > > >> ping! > > > > > > pong ... > > > > > > > > > Hi, > > > I've been trying this patch out on my GTA04 with 3.2-rc4 and it doesn't > > > work :-( > > > > Probably, v3.2-rc4 is not the best to try things out... > > This patch is based on v3.1, can you try v3.1, so at least we can > > check the that the patch itself has no problems? > > Also, CC'ing linux-omap. > > I think I'll be able to give 3.1 a try - I'll let you know. >
Yes, works fine with 3.1
I've managed to find the problem.
commit af8db1508f2c9f3b6e633e2d2d906c6557c617f9 Author: Peter Chen <peter.chen@freescale.com> Date: Tue Nov 15 21:52:29 2011 +0100
PM / driver core: disable device's runtime PM during shutdown
....
@@ -1742,6 +1743,8 @@ void device_shutdown(void) */ list_del_init(&dev->kobj.entry); spin_unlock(&devices_kset->list_lock); + /* Disable all device's runtime power management */ + pm_runtime_disable(dev); if (dev->bus && dev->bus->shutdown) { dev_dbg(dev, "shutdown\n");
Removing this call allows power-off to work.
It seems that omap_i2c.1 is normally in runtime suspend. omap_i2c_xfer wakes it up, performs the xfer, then puts it back to sleep.
So this pm_runtime_disable is called while the device is asleep, so it stays asleep. omap_i2c_xfer cannot wake it up and so cannot xfer anything.
I'll start a new thread including the people responsible for that patch.
Thanks for your time, NeilBrown [unhandled content-type:application/pgp-signature] | |