* PGP Signed by an unknown keyCool. Could you send me the patches?
On Wed, Jan 07, 2015 at 10:28:29PM +0800, Vince Hsu wrote:
On 04:08:52PM Jan 07, Peter De Schrijver wrote:Indeed, that'll be a prerequisite before we can merge power domain
On Wed, Jan 07, 2015 at 02:27:10PM +0100, Thierry Reding wrote:Agree. And as long as the driver has the correct reset procedure, that should
The powerdomain framework won't call any powergating method as long as aYeah. I plan to have the information of all the clock client of theThis whole situation is quite messy. The above sequence basically means
partitions and
the memory clients be defined statically in c source, e.g. pmc-tegra124.c.
All modules can declare which domain they belong to in DT. One domain can
be really power gated only when no module is awake. Note the clock clients
of
one domain might not equal to the clocks of the module. The reset is not
either.
So I don't get the clock and reset from module. How do you think?
that drivers can't reset hardware modules because otherwise they might
race with the power domain code. It also means that we can't powergate
module in the domain is still active. So as long as drivers don't try to
reset the hw without having done a pm_runtime_get(), we shouldn't have such
a race?
be fine to occur between power ungating and gating sequences.
Yeah. By the way, that means we should start supporting runtime pm for allmodules on demand because they might be in the same power domain as oneThe powerdomain framework keeps track of which modules are active (by hooking
other module that's still busy.
into runtime pm) and won't try to shutdown a domain unless all modules are
inactive.
the modules to use generic power domain.
support. I do have a couple of local patches that add very rudimentary
runtime PM for various drivers. For starters we could probably just do
the
pm_runtime_enable(...);
pm_runtime_get_sync(...)
in the ->probe() and
pm_runtime_put_sync(...);
pm_runtime_disable(...);
in the ->remove() callbacks for those drivers. That's by no means
optimal but should get us pretty close to what we do now and still
support the generic power domains.
Thierry
* Unknown Key
* 0x7F3EB3A1