On 08-02-19, 11:31, Ulf Hansson wrote: > On Fri, 8 Feb 2019 at 11:05, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > > > On 08-02-19, 10:45, Ulf Hansson wrote: > > > On Fri, 8 Feb 2019 at 08:17, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > > > > > > > On 07-02-19, 14:37, Ulf Hansson wrote: > > > > > I think we also need to consider cross SoC drivers. One SoC may have > > > > > both clocks and OPPs to manage, while another may have only clocks. > > > > > > > > We already have that case with CPUs as well and dev_pm_opp_set_rate() > > > > takes care of it. > > > > > > I think you may have misunderstood my point. Or maybe I don't get yours. :-) > > > > It was me. I thought you are talking about regulators and that is what > > is already managed, i.e. to work with or without regulators. > > > > > What if there is no OPP at all to use, then dev_pm_opp_set_rate() is > > > just a noop, right? In this scenario the driver still need to call > > > clk_set_rate(). > > > > > > How do we cope with these cases? > > > > Yeah, that would be a problem and hacking the OPP core may not be the > > right solution :( > > I guess one simple way forward could just be to check if there is an > OPP handle/table available, then use dev_pm_opp_set_rate(). When no > OPP handle/table, use clk_set_rate() *instead*, not both. > > That could work, don't you think? Yeah, just that it adds more conditional code in drivers, while we wanted to make them light-weight :) -- viresh