On Sat, 2013-03-16 at 03:38 +0800, Stephen Warren wrote:
On 03/15/2013 06:33 AM, Ulf Hansson wrote:
On 15 March 2013 13:06, Bill Huang bilhuang@nvidia.com wrote:
On Fri, 2013-03-15 at 18:08 +0800, Ulf Hansson wrote:
...
Some prerequisites; I think am in favor of using the clk API to trigger DVFS changes and then I agree on that clk_prepare|unprepare needs to be possible to track from a DVFS perspective. clk_set_rate is not enough.
So if we decide to do the above (using the clk API to trigger DVFS changes), I believe we should discuss two possible solutions;
- clk notifiers or..
- dvfs clock type.
I am trying to make up my mind of what I think is the best solution. Have you considered "dvfs clock type"? I put some comments about this for "[PATCH 2/5] clk: notifier handler for dynamic voltage scaling" recently as well.
What could the advantages/disadvantages be between the two options?
I personally prefer clk notifiers since that's easy and all the existing device drivers don't need to be modified, a new clock or API might be more thoroughly considered (and hence maybe more graceful) but that means we need more time to cook and many drivers need to plug into that API when it comes out, a lot of test/verification or maybe chaos follows, I'm not sure will that be a little overkill.
I guess you did not fully got what I meant with "dvfs clock type". It will not affect the clock API. But instead the dvfs is handled by implementing a specific clk hw type. So the same thing is accomplished as with clk notifiers, no changes should be needed to device drivers.
The difference is only that no notifiers will be needed, and all the dvfs stuff will be handled in the clk hw instead. It will mean that we will bundle dvfs stuff into the clock drivers, instead of separating the code outside the clock drivers. But, on the other hand no notifiers will be needed.
The advantage here is that I assume that a notifier would continually have to check whether the clock being modified was one that the DVFS notifier cared about. By integrating the CVFS logic into the clk_hw
Actually, we can register notifier only on clocks that DVFS care about.