Skip to contentSkip to conversation

regulator: Fix _regulator_get_voltage if get_voltage callback is NULL

PATCH Superseded Axel Lin 2 participants 2 messages May 20, 2011 Voltage and current regulator framework

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH v2 1/1 regulator: Fix _regulator_get_voltage if get_voltage callback is NULL

In the case of get_voltage callback is NULL, current implementation in _regulator_get_voltage will return -EINVAL.

Also returns proper error if ret is negative value.

---
v2: remove unneeded goto.

 drivers/regulator/core.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
drivers/regulator/core.c +4 -4
index 9493f61..f11b0ba 100644
@@ -1886,13 +1886,13 @@ static int _regulator_get_voltage(struct regulator_dev *rdev)
 		if (sel < 0)
 			return sel;
 		ret = rdev->desc->ops->list_voltage(rdev, sel);
-	}
-	if (rdev->desc->ops->get_voltage)
+	} else if (rdev->desc->ops->get_voltage) {
 		ret = rdev->desc->ops->get_voltage(rdev);
-	else
+	} else {
 		return -EINVAL;
+	}
 
-	return ret - rdev->constraints->uV_offset;
+	return ret < 0 ? ret : ret - rdev->constraints->uV_offset;
 }
 
 /**
Signature · 1 line
1.7.1
#1 lore raw

drivers/regulator/core.c static int _regulator_get_voltage(struct regulator_dev *rdev) · line 1895

Quoted 2 lines · Axel Lin
drivers/regulator/core.c +1 -1
-	return ret - rdev->constraints->uV_offset;
+	return ret < 0 ? ret : ret - rdev->constraints->uV_offset;

Please don't use the ternery operator, I find it does nothing for legibility.