Re: [RFC][PATCH 2/3] PM / sleep: Mechanism to avoid resuming runtime-suspended devices unnecessarily

Ulf Hansson
2014-05-15T12:06:59Z

> Do we want to allow ->prepare() to return > 0 if the device isn't
> runtime suspended? If we do then non-suspended devices may be a common
> case. We should then avoid the extra overhead of disable + enable.
> So I would write:
>
> if (dev->power.direct_complete) {
> if (pm_runtime_status_suspended(dev)) {
> pm_runtime_disable(dev);
> if (dev->power.disable_depth == 1
> && pm_runtime_status_suspended(dev))
> goto Complete;
> pm_runtime_enable(dev);
> }
> dev->power.direct_complete = false;
> }
>

I am wondering whether the above pm_runtime_disable|enable actually
belongs better in driver/subsystem in favour of the PM core?

Doesn't the driver/subsystem anyway needs to be on top of what goes
on? Typically, while runtime PM has been disabled, that might affect
it's wakeup handling? Or this case are already handled due to other
circumstances?

Kind regards
Ulf Hansson