Message ID | 3ad0ce115028e628e556a505689d396b6e98f04e.1442939340.git.viresh.kumar@linaro.org |
---|---|
State | New |
Headers | show |
On 09/22, Viresh Kumar wrote: > of_property_count_u32_elems() will never return 0, but a -ve error value > of a positive count. And so the current !count check is wrong. > > Also, a missing "opp-microvolt" property isn't a problem and so we need > to do of_find_property() separately to confirm that. > > Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings") > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
On Tuesday, September 22, 2015 09:51:27 AM Stephen Boyd wrote: > On 09/22, Viresh Kumar wrote: > > of_property_count_u32_elems() will never return 0, but a -ve error value > > of a positive count. And so the current !count check is wrong. > > > > Also, a missing "opp-microvolt" property isn't a problem and so we need > > to do of_find_property() separately to confirm that. > > > > Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings") > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > > --- > > Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Applied, thanks! Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c index 28cd75c535b0..1194669c2bb5 100644 --- a/drivers/base/power/opp.c +++ b/drivers/base/power/opp.c @@ -892,10 +892,17 @@ static int opp_get_microvolt(struct dev_pm_opp *opp, struct device *dev) 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 */ + if (!of_find_property(opp->np, "opp-microvolt", NULL)) return 0; + count = of_property_count_u32_elems(opp->np, "opp-microvolt"); + if (count < 0) { + dev_err(dev, "%s: Invalid opp-microvolt property (%d)\n", + __func__, count); + return count; + } + /* There can be one or three elements here */ if (count != 1 && count != 3) { dev_err(dev, "%s: Invalid number of elements in opp-microvolt property (%d)\n",
of_property_count_u32_elems() will never return 0, but a -ve error value of a positive count. And so the current !count check is wrong. Also, a missing "opp-microvolt" property isn't a problem and so we need to do of_find_property() separately to confirm that. Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings") Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- V1->V2: - Dropped 'prop' variable. drivers/base/power/opp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)