[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160822162907.GO22076@sirena.org.uk>
Date: Mon, 22 Aug 2016 17:29:07 +0100
From: Mark Brown <broonie@...nel.org>
To: Chen-Yu Tsai <wens@...e.org>
Cc: Lee Jones <lee.jones@...aro.org>, Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Liam Girdwood <lgirdwood@...il.com>,
Maxime Ripard <maxime.ripard@...e-electrons.com>,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-sunxi@...glegroups.com
Subject: Re: [PATCH 3/9] regulator: core: Try full range when adjusting
regulators to constraints
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.
Download attachment "signature.asc" of type "application/pgp-signature" (474 bytes)
Powered by blists - more mailing lists