Re: [PATCH v8 01/34] opp: Add dev_pm_opp_sync() helper

Viresh Kumar
2021-08-24T03:09:30Z

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