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.
Attachment:
signature.asc
Description: PGP signature