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.