[PATCH 3/9] regulator: core: Try full range when adjusting regulators to constraints
Mark Brown
broonie at kernel.org
Mon Aug 22 09:29:07 PDT 2016
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160822/e35014e0/attachment.sig>
More information about the linux-arm-kernel
mailing list