summaryrefslogtreecommitdiffstats
path: root/drivers/opp/of.c
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2023-09-25 15:17:09 +0200
committerViresh Kumar <viresh.kumar@linaro.org>2023-10-06 12:37:33 +0530
commit248a38d5cc3f3505e6cfbbc0514435c9f1ba00af (patch)
tree7b80f1139569c488164e461ef2438cb1c04311e6 /drivers/opp/of.c
parent401e09201a01183f1cc8533aa956cb837bf6d3da (diff)
downloadlinux-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.c10
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;