diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2023-09-25 15:17:09 +0200 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2023-10-06 12:37:33 +0530 |
commit | 248a38d5cc3f3505e6cfbbc0514435c9f1ba00af (patch) | |
tree | 7b80f1139569c488164e461ef2438cb1c04311e6 /drivers/opp/of.c | |
parent | 401e09201a01183f1cc8533aa956cb837bf6d3da (diff) | |
download | linux-248a38d5cc3f3505e6cfbbc0514435c9f1ba00af.tar.gz linux-248a38d5cc3f3505e6cfbbc0514435c9f1ba00af.tar.bz2 linux-248a38d5cc3f3505e6cfbbc0514435c9f1ba00af.zip |
OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility
The dev_pm_opp_add() API is limited to add dynamic OPPs with a frequency
and a voltage level. To enable more flexibility, let's add a new API,
dev_pm_opp_add_dynamic() that's takes a struct dev_pm_opp_data* instead of
a list of in-parameters.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/opp/of.c')
-rw-r--r-- | drivers/opp/of.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/opp/of.c b/drivers/opp/of.c index ada4963c7cfa..ade6d42cae46 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -1077,13 +1077,15 @@ static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table) val = prop->value; while (nr) { - unsigned long freq = be32_to_cpup(val++) * 1000; - unsigned long volt = be32_to_cpup(val++); + struct dev_pm_opp_data data = { + .freq = be32_to_cpup(val++) * 1000, + .u_volt = be32_to_cpup(val++), + }; - ret = _opp_add_v1(opp_table, dev, freq, volt, false); + ret = _opp_add_v1(opp_table, dev, &data, false); if (ret) { dev_err(dev, "%s: Failed to add OPP %ld (%d)\n", - __func__, freq, ret); + __func__, data.freq, ret); goto remove_static_opp; } nr -= 2; |