Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Thu, 7 Dec 2017 22:17:42 +0100 | Subject | Re: [PATCH] PM / sleep: Avoid excess pm_runtime_enable() calls in device_resume() |
| |
On Thu, Dec 7, 2017 at 8:44 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote: > On 7 December 2017 at 03:26, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: >> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> >> Middle-layer code doing suspend-time optimizations for devices with >> the DPM_FLAG_SMART_SUSPEND flag set (currently, the PCI bus type and >> the ACPI PM domain) needs to make the core skip ->thaw_early and >> ->thaw callbacks for those devices in some cases and it sets the >> power.direct_complete flag for them for this purpose. >> >> However, it turns out that setting power.direct_complete outside of >> the PM core is a bad idea as it triggers an excessive invocation of >> pm_runtime_enable() in device_resume(). > > Do we need to clarify the comment about the flag in pm.h? > > Or is "/* Owned by the PM core */" sufficient?
That should be sufficient (and I sort of tried to ignore it ...).
>> >> For this reason, provide a helper to clear power.is_late_suspended >> and power.is_suspended to be invoked by the middle-layer code in >> question instead of setting power.direct_complete and make that code >> call the new helper. >> >> Fixes: c4b65157aeef (PCI / PM: Take SMART_SUSPEND driver flag into account) >> Fixes: 05087360fd7a (ACPI / PM: Take SMART_SUSPEND driver flag into account) >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Reviewed-by: Ulf Hansson <ulf.hansson@linaro,org>
Thanks!
| |