[PATCH RFC v3 1/2] PM / Domains: Extend API pm_genpd_dev_need_restore to use restore types
From: Rafael J. Wysocki <hidden>
Date: 2014-12-19 01:55:47
Also in:
linux-pm, linux-samsung-soc, lkml
On Thursday, December 18, 2014 11:05:18 AM Sylwester Nawrocki wrote:
On 18/12/14 01:58, Rafael J. Wysocki wrote:quoted
quoted
quoted
quoted
What's needed to solve this problem is a generalized way to have runtimequoted
quoted
quoted
PM dependencies between devices. Runtime PM already automatically handles parent devices as one type of dependent device (e.g. a parent device needs to be runtime PM resumed before its child.) So what's needed is a generic way to other PM dependencies with the runtime PM core (not the genpd core.)Considering the example above with three devices, device D1 and D2 are passive components in this power domain. These devices only need to know the state changes of the power domains but would not control the power domain themselves nor put forth constraints in the power domain state changes. So I did not clearly understand as to how this example could be solved by introducing changes in runtime PM core.Your solution only solves the problems for devices managed by genpd. If I understood your example correctly, what you really want to solve this problem more generically is to be able to tell the runtime PM core that D3 has a dependency on D1 and D2. Then, whenver the runtime PM core is doing get/put operations for D3, it needs to also do them for D1 and D2.Indeed, I think it would solve most of the problems if we were able to model the PM dependencies between devices which would then be handled in the PM core. I recall something like this has been proposed a while ago [1].
Exactly. And I'm going to revive it in a slightly simplified form.
quoted
quoted
quoted
This will accomplish the same as your proposed approach, but work for any devices in any PM domains.Plus, it is not limited to runtime PM, really. It affects system suspend too.[1] https://lkml.org/lkml/2009/8/26/485
-- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.