Re: runtime PM: common hooks for static and runtime PM

Mark Brown
2010-02-05T22:44:22Z

On Fri, Feb 05, 2010 at 04:40:11PM -0500, Alan Stern wrote:
> On Fri, 5 Feb 2010, Mark Brown wrote:

> > I wonder if it's worth the PM core providing an off the shelf suspend
> > and resume via runtime PM implementation so drivers only need to assign
> > function pointers? As Kevin says this is going to be *very* common for
> > embedded drivers.

> What's so hard about doing this?
>
> int my_suspend(struct device *dev)
> {
> if (dev->power.runtime_status == RPM_SUSPENDED)
> return 0;
> return my_runtime_suspend(dev);
> }

> Or if you prefer, stick the "if" statement at the beginning of your
> suspend method and then set both function pointers to the same method.

It's not that it's hard per se, it's that it feels like it's peering
inside the implementation of the API. Having the PM core provide
something would make it clear that this is the expected approach and
ensure that there aren't any silly mistakes, in much the same way that
having SIMPLE_DEV_PM_OPS makes the handling of drivers that use the same
suspend path for both suspend to disk and suspend to RAM clear.