lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 21 Aug 2016 10:11:19 +0800 From: Chen-Yu Tsai <wens@...e.org> To: Lee Jones <lee.jones@...aro.org>, Rob Herring <robh+dt@...nel.org>, Mark Rutland <mark.rutland@....com>, Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>, Maxime Ripard <maxime.ripard@...e-electrons.com> Cc: Chen-Yu Tsai <wens@...e.org>, devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org, linux-sunxi@...glegroups.com Subject: [PATCH 3/9] regulator: core: Try full range when adjusting regulators to constraints 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. Instead pass the full range of the constraints, and have the regulator core work out a suitable voltage within. Fixes: ("regulator: core: Ensure we are at least in bounds for our constraints") Signed-off-by: Chen-Yu Tsai <wens@...e.org> --- drivers/regulator/core.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index db320e8fa865..86f69c92ce7a 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -897,13 +897,9 @@ static int machine_constraints_voltage(struct regulator_dev *rdev, target_min = current_uV; target_max = current_uV; - 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; } -- 2.9.3
Powered by blists - more mailing lists