Re: [POWER DOMAIN suspend callbacks] Observation.
From: Kevin Hilman <hidden>
Date: 2011-08-24 23:38:01
Santosh [off-list ref] writes:
On Tuesday 23 August 2011 10:36 PM, Kevin Hilman wrote:quoted
Hi Santosh, Santosh[off-list ref] writes:quoted
Rafael, Kevin, On latest kernel( V3.1-rc1+), the subsystem(driver) suspend callbacks are not getting called because power domain callbcaks are populated. And as per commit 4d27e9dc{PM: Make power domain callbacks take precedence over subsystem ones}, it's expected bahavior.Correct.quoted
Who is suppose to call the driver suspend callback?If populated, the PM domain callbacks should call the driver callbacks. If there are no PM domain callbacks, then the subsystem (in this case, the platform_bus) should be calling the driver callbacks.quoted
Some drivers/subsystem would have state machine which needs to be suspended. Is the power domain suspend callback, suppose to take care of it ? If yes, then that seems to be missing for OMAP.Yup, there's a bug. They're not missing, just misplaced. ;) When adding the noirq callbacks to ensure devices are idled late in suspend by omap_device, I the patch commited mistakenly uses SET_SYSTEM_SLEEP_PM_OPS(), which sets the "normal" suspend/resume handlers and not the noirq handlers. Can you try the patch below? I only briefly tested it on omap3/n900 so far.The patch works like charm.
Thanks, I'll add a tested-by for you. Kevin