[PATCH 3/4] OPP: Update the bandwidth on OPP frequency changes

From: Georgi Djakov
Date: Wed Mar 13 2019 - 05:00:36 EST


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@xxxxxxxxxx>
---
drivers/opp/core.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index 4b019cecaa07..99e7c4cf6c34 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -781,6 +781,10 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
ret = _generic_set_opp_clk_only(dev, clk, old_freq, freq);
}

+ if (!ret && !IS_ERR_OR_NULL(opp_table->path) && opp->bandwidth)
+ icc_set_bw(opp_table->path, opp->bandwidth->avg,
+ opp->bandwidth->peak);
+
/* Scaling down? Configure required OPPs after frequency */
if (!ret && freq < old_freq) {
ret = _set_required_opps(dev, opp_table, opp);