On 09/17, Viresh Kumar wrote:
+++ b/drivers/base/power/opp.c @@ -889,13 +889,22 @@ static int _opp_add_dynamic(struct device *dev, unsigned long freq, /* TODO: Support multiple regulators */ static int opp_get_microvolt(struct dev_pm_opp *opp, struct device *dev) {
- struct property *prop; u32 microvolt[3] = {0}; int count, ret;
- count = of_property_count_u32_elems(opp->np, "opp-microvolt");
- if (!count)
- /* Missing property isn't a problem, but an invalid entry is */
- prop = of_find_property(opp->np, "opp-microvolt", NULL);
Prop isn't used anywhere so why not remove the local variable and test the result of this call inside the if condition?
- if (!prop) return 0;
- count = of_property_count_u32_elems(opp->np, "opp-microvolt");
- if (count < 0) {
We can't test count for -EINVAL to detect the missing property because -EINVAL is also returned on a non-multiple of u32 length property? Maybe we shouldn't worry about that case and turn -EINVAL into 0.
dev_err(dev, "%s: Invalid opp-microvolt property (%d)\n",
__func__, count);
return count;