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