On 02-07-19, 10:06, Rajendra Nayak wrote: > With OPP core now supporting DVFS for IO devices, we have instances of > IO devices (same IP block) with require an OPP on some platforms/SoCs which > while just needing to scale the clock on some others. Blank line here. > In order to avoid conditional code in every driver, (to check for remove , > availability of OPPs and then deciding to do either dev_pm_opp_set_rate() > or clk_set_rate()) add support to manage empty OPP tables with a clk handle. Blank line here. > This makes dev_pm_opp_set_rate() equivalent of a clk_set_rate() for devices > with just a clk and no OPPs specified. > > Signed-off-by: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx> > --- > drivers/opp/core.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > index ae033bb1e5b7..fa7d4d6d37b3 100644 > --- a/drivers/opp/core.c > +++ b/drivers/opp/core.c > @@ -801,6 +801,11 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) > goto put_opp_table; > } > Explain the rationale behind this code here in a comment. > + if (!_get_opp_count(opp_table)) { > + ret = _generic_set_opp_clk_only(dev, clk, freq); > + goto put_opp_table; > + } > + > temp_freq = old_freq; > old_opp = _find_freq_ceil(opp_table, &temp_freq); > if (IS_ERR(old_opp)) { Also, rebase over the OPP branch please: git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git opp/linux-next or pm/linux-next -- viresh