[3/4] PM / OPP: opp-microvolt is not optional if regulators are set

Message ID 0e9ac75f0e94d7b0bff9a398b501e2fe4f409051.1494995911.git.viresh.kumar@linaro.org
State New
Headers show
Series
  • PM / OPP: Minor cleanups
Related show

Commit Message

Viresh Kumar May 17, 2017, 4:40 a.m.
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>

---
 drivers/base/power/opp/of.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

-- 
2.13.0.303.g4ebf3021692d

Comments

Stephen Boyd May 23, 2017, 1:20 a.m. | #1
On 05/17, Viresh Kumar wrote:
> 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>

> ---

>  drivers/base/power/opp/of.c | 11 +++++++++--

>  1 file changed, 9 insertions(+), 2 deletions(-)

> 

> diff --git a/drivers/base/power/opp/of.c b/drivers/base/power/opp/of.c

> index 779428676f63..c6fc8cbad10d 100644

> --- a/drivers/base/power/opp/of.c

> +++ b/drivers/base/power/opp/of.c

> @@ -131,8 +131,15 @@ 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) {

> +			/* The regulator-count must be zero here */


Comment is restating code with no insight into what's so special,
how about:

			/*
			 * But it better not be missing if we're
			 * expecting OPP core to manage regulators
			 */

Although I suppose the dev_err message is pretty good.

> +			if (!opp_table->regulator_count)

> +				return 0;

> +

> +			dev_err(dev, "%s: opp-microvolt missing even if regulators are available\n",


"missing although OPP managing regulators"?

> +				__func__);


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

Patch hide | download patch | download mbox

diff --git a/drivers/base/power/opp/of.c b/drivers/base/power/opp/of.c
index 779428676f63..c6fc8cbad10d 100644
--- a/drivers/base/power/opp/of.c
+++ b/drivers/base/power/opp/of.c
@@ -131,8 +131,15 @@  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) {
+			/* The regulator-count must be zero here */
+			if (!opp_table->regulator_count)
+				return 0;
+
+			dev_err(dev, "%s: opp-microvolt missing even if regulators are available\n",
+				__func__);
+			return -EINVAL;
+		}
 	}
 
 	vcount = of_property_count_u32_elems(opp->np, name);