On 23-08-21, 23:24, Dmitry Osipenko wrote: > It's not clear to me whether it will be okay to add a generic OPP syncing by clock rate or should it be a Tegra-specific helper. Viresh, what do you think about this generic OPP helper: > > /** > * dev_pm_opp_sync_with_clk_rate() - Sync OPP state with clock rate > * @dev: device for which we do this operation > * > * Sync OPP table state with the current clock rate of device. > * > * Return: 0 on success or a negative error value. > */ > int dev_pm_opp_sync_with_clk_rate(struct device *dev) > { > struct opp_table *opp_table; > int ret = 0; > > /* Device may not have OPP table */ > opp_table = _find_opp_table(dev); > if (IS_ERR(opp_table)) > return 0; > > /* Device may not use clock */ > if (IS_ERR(opp_table->clk)) > goto put_table; > > /* Device may have empty OPP table */ > if (!_get_opp_count(opp_table)) > goto put_table; > > ret = dev_pm_opp_set_rate(dev, clk_get_rate(opp_table->clk)); > put_table: > /* Drop reference taken by _find_opp_table() */ > dev_pm_opp_put_opp_table(opp_table); > > return ret; > } > EXPORT_SYMBOL_GPL(dev_pm_opp_sync_with_clk_rate); I am not sure why you still need this, hope we were going another way ? Anyway I will have a look at what you have posted now. -- viresh