On Tuesday 23 August 2011 10:36 PM, Kevin Hilman wrote: > Hi Santosh, > > Santosh<santosh.shilimkar@xxxxxx> writes: > >> 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. > >> 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. > >> 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. > This populates most of the PM domain methods with the same ones used by > the subystem (platform_bus) and only overrides the noirq methods with > custom versions. This patch should make all the driver's suspend/resume > methods be called as expected. > > After a bit more sanitiy testing, I'll post a real patch for the -rc > series. > Great. Regards Santosh _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm