Re: [PATCH v7 6/7] OPP: Update the bandwidth on OPP frequency changes

Saravana Kannan
2020-04-24T21:18:57Z

On Fri, Apr 24, 2020 at 8:54 AM Georgi Djakov <georgi.djakov@linaro.org> wrote:
>
> If the OPP bandwidth values are populated, we want to switch also the
> interconnect bandwidth in addition to frequency and voltage.
>
> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
> ---
> v7:
> * Addressed review comments from Viresh.
>
> v2: https://lore.kernel.org/r/20190423132823.7915-5-georgi.djakov@linaro.org
>
> drivers/opp/core.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/opp/core.c b/drivers/opp/core.c
> index 8e86811eb7b2..66a8ea10f3de 100644
> --- a/drivers/opp/core.c
> +++ b/drivers/opp/core.c
> @@ -808,7 +808,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
> unsigned long freq, old_freq, temp_freq;
> struct dev_pm_opp *old_opp, *opp;
> struct clk *clk;
> - int ret;
> + int ret, i;
>
> opp_table = _find_opp_table(dev);
> if (IS_ERR(opp_table)) {
> @@ -895,6 +895,17 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
> dev_err(dev, "Failed to set required opps: %d\n", ret);
> }
>
> + if (!ret && opp_table->paths) {
> + for (i = 0; i < opp_table->path_count; i++) {
> + ret = icc_set_bw(opp_table->paths[i],
> + opp->bandwidth[i].avg,
> + opp->bandwidth[i].peak);
> + if (ret)
> + dev_err(dev, "Failed to set bandwidth[%d]: %d\n",
> + i, ret);
> + }
> + }
> +

Hey Georgi,

Thanks for getting this series going again and converging on the DT
bindings! Will be nice to see this land finally.

I skimmed through all the patches in the series and they mostly look
good (if you address some of Matthias's comments).

My only comment is -- can we drop this patch please? I'd like to use
devfreq governors for voting on bandwidth and this will effectively
override whatever bandwidth decisions are made by the devfreq
governor.

If you really want to keep this, then maybe don't "get" the icc path
by default in patch 4/7 and then let the device driver set the icc
path if it wants the opp framework to manage the bandwidth too?

-Saravana