summaryrefslogtreecommitdiff
path: root/drivers/base/power/opp/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/power/opp/core.c')
-rw-r--r--drivers/base/power/opp/core.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c
index d7cd4e265766..146b6197d598 100644
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
@@ -257,7 +257,7 @@ unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
}
reg = dev_opp->regulator;
- if (IS_ERR_OR_NULL(reg)) {
+ if (IS_ERR(reg)) {
/* Regulator may not be required for device */
if (reg)
dev_err(dev, "%s: Invalid regulator (%ld)\n", __func__,
@@ -798,6 +798,9 @@ static struct device_opp *_add_device_opp(struct device *dev)
of_node_put(np);
}
+ /* Set regulator to a non-NULL error value */
+ dev_opp->regulator = ERR_PTR(-EFAULT);
+
/* Find clk for the device */
dev_opp->clk = clk_get(dev, NULL);
if (IS_ERR(dev_opp->clk)) {
@@ -845,7 +848,7 @@ static void _remove_device_opp(struct device_opp *dev_opp)
if (dev_opp->prop_name)
return;
- if (!IS_ERR_OR_NULL(dev_opp->regulator))
+ if (!IS_ERR(dev_opp->regulator))
return;
/* Release clk */
@@ -975,7 +978,7 @@ static bool _opp_supported_by_regulators(struct dev_pm_opp *opp,
{
struct regulator *reg = dev_opp->regulator;
- if (!IS_ERR_OR_NULL(reg) &&
+ if (!IS_ERR(reg) &&
!regulator_is_supported_voltage(reg, opp->u_volt_min,
opp->u_volt_max)) {
pr_warn("%s: OPP minuV: %lu maxuV: %lu, not supported by regulator\n",
@@ -1435,7 +1438,7 @@ int dev_pm_opp_set_regulator(struct device *dev, const char *name)
}
/* Already have a regulator set */
- if (WARN_ON(!IS_ERR_OR_NULL(dev_opp->regulator))) {
+ if (WARN_ON(!IS_ERR(dev_opp->regulator))) {
ret = -EBUSY;
goto err;
}
@@ -1486,7 +1489,7 @@ void dev_pm_opp_put_regulator(struct device *dev)
goto unlock;
}
- if (IS_ERR_OR_NULL(dev_opp->regulator)) {
+ if (IS_ERR(dev_opp->regulator)) {
dev_err(dev, "%s: Doesn't have regulator set\n", __func__);
goto unlock;
}
@@ -1495,7 +1498,7 @@ void dev_pm_opp_put_regulator(struct device *dev)
WARN_ON(!list_empty(&dev_opp->opp_list));
regulator_put(dev_opp->regulator);
- dev_opp->regulator = ERR_PTR(-EINVAL);
+ dev_opp->regulator = ERR_PTR(-EFAULT);
/* Try freeing device_opp if this was the last blocking resource */
_remove_device_opp(dev_opp);