Re: [RFC PATCH 0/4] PM / Domains: Add support for explicit control of PM domains

From: Jon Hunter
Date: Tue Oct 10 2017 - 05:13:38 EST



On 09/10/17 17:36, Todor Tomov wrote:
> Hi,
>
> On 30.05.2017 06:41, Rajendra Nayak wrote:
>> []..
>>
>>>>> I was proposing to have such a lower-layer by splitting the existing
>>>>> genpd framework so the drivers would have the option of calling the
>>>>> lower-level power control functions to look-up pm-domains and control
>>>>> them directly from their rpm callbacks (if they need to). Same as we do
>>>>> for clocks. This way you would not need to mess with the genpd ->start()
>>>>> callback and leave it to the driver to handle itself as it knows what
>>>>> needs to be done. This assumes that the device is never bound to the
>>>>> pm-domain by the genpd core.
>>>>
>>>> Yes, agree! To me this is the only solution what would really work.
>>>
>>> I agree! :-)
>>>
>>>> Perhaps Rafael can confirm that he is fine with a solution like this?
>>>
>>> Yes and Rafael, please can you also elaborate on what you meant by
>>> "allow genpd to use either a list of power resources or the on/off
>>> callbacks provided by itself to cover different use cases"?
>>>
>>> I would like to understand exactly what you meant by allowing genpd to
>>> use a list of power resources (ie. how you envisioned we could achieve
>>> this).
>>
>> While thinking through the problem of devices associated with multiple Power
>> domains (or power resources) and controlling them individually (or together)
>> I was wondering if something like a PM domain governor (with PM resource
>> level constraints) could help.
>>
>> So with just one set of PM domain callbacks, its quite easy to control multiple power
>> resources, if they need to be *all* turned on/off together, using something similar to
>> what Jon proposed in his RFC [1]
>>
>> However, there could be instances where in we might need to control them individually
>> and in such cases we could hook up a PM domain governor which decides if an individual
>> PM resource can be turned on or off while the device is runtime suspended/resumed.
>> We can expose some PM resource level QoS APIs which the drivers can use to express their
>> needs, which the PM domain governor then takes into account during the decision making.
>>
>> if this seems worth pursuing further, I can post some RFCs on these lines and
>> get the discussion going.
>>
>> thanks,
>> Rajendra
>>
>> [1] https://lkml.org/lkml/2016/9/20/173
>>
>
> I have come to a similar case with multiple power domains on Qualcomm APQ8096 - the
> camera subsystem has two VFE modules (Video Front End - these are image processing modules)
> and each of them has a separate power domain but we might want to control these from
> a single driver.
>
> So I wanted to ask if there have been any news on this topic lately?

There has not but there is still clearly a need for this and we need it
for Tegra. I still plan to get back to this but recently a few items
have cropped up and I have not had chance. So sorry about that.

My plan was to split the current GPD framework so there is a lower-level
set of APIs for managing the power-domains as I discussed with Rafael [0].

Cheers
Jon

[0] https://lkml.org/lkml/2017/5/2/203

--
nvpublic