Thread (20 messages) flat view 20 messages, 6 authors, 2016-08-23

Re: [PATCH 3/9] regulator: core: Try full range when adjusting regulators to constraints

From: Mark Brown <hidden>
Date: 2016-08-22 16:30:27
Also in: linux-arm-kernel, lkml

On Sun, Aug 21, 2016 at 10:11:19AM +0800, Chen-Yu Tsai wrote:
Currently when we try to bring regulator in bounds of its constraints,
we pick either the minimum or maximum voltage as the target. This fails
if the regulator range is not continuous, and the target voltage is not
an exact value the regulator can achieve, i.e. the target is not aligned
to the step of the regulator.
This seems like you have buggy constraints, constraints which allow
voltages that can't physically be satisfied don't make obvious sense.
-		if (current_uV < rdev->constraints->min_uV) {
+		if (current_uV < rdev->constraints->min_uV ||
+		    current_uV > rdev->constraints->max_uV) {
 			target_min = rdev->constraints->min_uV;
-			target_max = rdev->constraints->min_uV;
-		}
-
-		if (current_uV > rdev->constraints->max_uV) {
-			target_min = rdev->constraints->max_uV;
 			target_max = rdev->constraints->max_uV;
 		}
This is most likely going to cause disruption to systems where the
voltage is over the constraint voltage - it will result in the voltage
being lowered to the minimum allowed which will have a much higher
chance of upsetting things.  This is why we don't just do a constraints
run.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help