On 18/12/14 01:58, Rafael J. Wysocki wrote:
quoted
quoted
quoted
What's needed to solve this problem is a generalized way to have runtime
quoted
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].
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
--
Regards,
Sylwester