summaryrefslogtreecommitdiff
path: root/drivers/opp
diff options
context:
space:
mode:
authorNathan Chancellor <nathan@kernel.org>2023-10-05 20:25:27 +0300
committerViresh Kumar <viresh.kumar@linaro.org>2023-10-06 10:19:29 +0300
commit184ff4f721638e37a5a5907bf98962b6d9318ef6 (patch)
tree35f44bc10cb25c53349425e8a94a79b70963699b /drivers/opp
parent693bb8a4d1a762058c5dbf42fb95a567931f706e (diff)
downloadlinux-184ff4f721638e37a5a5907bf98962b6d9318ef6.tar.xz
OPP: Fix -Wunsequenced in _of_add_opp_table_v1()
Clang warns (or errors with CONFIG_WERROR=y): drivers/opp/of.c:1081:28: error: multiple unsequenced modifications to 'val' [-Werror,-Wunsequenced] 1081 | .freq = be32_to_cpup(val++) * 1000, | ^ 1082 | .u_volt = be32_to_cpup(val++), | ~~ 1 error generated. There is no sequence point in a designated initializer. Move back to separate variables for the creation of the values, so that there are sequence points between each evaluation and increment of val. Fixes: 75bbc92c09d8 ("OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility") Signed-off-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/opp')
-rw-r--r--drivers/opp/of.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/opp/of.c b/drivers/opp/of.c
index ade6d42cae46..ae5c405bbf9a 100644
--- a/drivers/opp/of.c
+++ b/drivers/opp/of.c
@@ -1077,9 +1077,11 @@ 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++),
+ .freq = freq,
+ .u_volt = volt,
};
ret = _opp_add_v1(opp_table, dev, &data, false);