diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2017-05-23 06:02:12 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-06-22 03:15:30 +0200 |
commit | 688a48b0d27000167e0450bc1243e29a560395ca (patch) | |
tree | c1cc28e5ce664efed6abad22bcda8c3b1a44d92e /drivers/base | |
parent | PM / OPP: Don't create copy of regulators unnecessarily (diff) | |
download | linux-688a48b0d27000167e0450bc1243e29a560395ca.tar.xz linux-688a48b0d27000167e0450bc1243e29a560395ca.zip |
PM / OPP: opp-microvolt is not optional if regulators are set
If dev_pm_opp_set_regulators() is called for a device and its regulators
are set in the OPP core, the OPP nodes for the device must contain the
"opp-microvolt" property, otherwise there is something wrong and we
better error out.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/power/opp/of.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/base/power/opp/of.c b/drivers/base/power/opp/of.c index 779428676f63..57eec1ca0569 100644 --- a/drivers/base/power/opp/of.c +++ b/drivers/base/power/opp/of.c @@ -131,8 +131,14 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev, prop = of_find_property(opp->np, name, NULL); /* Missing property isn't a problem, but an invalid entry is */ - if (!prop) - return 0; + if (!prop) { + if (!opp_table->regulator_count) + return 0; + + dev_err(dev, "%s: opp-microvolt missing although OPP managing regulators\n", + __func__); + return -EINVAL; + } } vcount = of_property_count_u32_elems(opp->np, name); |