On Thu, 27 Jan 2011, Kevin Hilman wrote: > > Calling the runtime_suspend method directly is the way to do it. > > > > Do you mean the driver's runtime_suspend method, or the subsystem's > runtime_suspend method? The subsystem's. If the driver has a runtime_suspend method then the subsystem's method will call it. > >> While this works, I'm not crazy about it since it requires the driver > >> know about the subsystem (in this case the bus) where the real PM work > >> is done. IMO, it would be much more intuitive (and readable) if the > >> driver's suspend hooks could simply trigger a runtime suspend (either a > >> new one, or one already requested.) > > > > This isn't clear to me. Isn't the driver registered on the bus in > > question? Can't the driver therefore call the bus's runtime_suspend > > routine directly, instead of dereferencing the bus->pm->runtime_suspend > > pointer? > > Not sure what you mean by directly. The platform_bus doesn't expose > its runtime PM methods since they can be customized at runtime, so they > have to be called via bus->pm. > > Or do you mean using dev->driver instead of dev->bus? You're doing all of this for OMAP, right? What is the subsystem's runtime_suspend routine? Is it omap_pm_runtime_suspend()? If it is, then you can call omap_pm_runtime_suspend() directly instead of calling dev->bus->pm->runtime_suspend(). Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html