From: Jon Hunter Date: Thu, 21 Apr 2016 16:12:01 +0000 (+0100) Subject: UPSTREAM: regulator: helpers: Ensure bypass register field matches ON value X-Git-Tag: firefly_0821_release~460 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=14b8d1e030574b603d3b5e2919aa84ea6eb62d0a;p=firefly-linux-kernel-4.4.55.git UPSTREAM: regulator: helpers: Ensure bypass register field matches ON value When checking bypass state for a regulator, we check to see if any bits in the bypass mask are set. For most cases this is fine because there is typically, only a single bit used to determine if the regulator is in bypass. However, for some regulators, such as LDO6 on AS3722, the bypass state is indicate by a value rather than a single bit. Therefore, when checking the bypass state, check that the bypass field matches the ON value. Signed-off-by: Jon Hunter Signed-off-by: Mark Brown (cherry picked from commit dd1a571daee7cdd6504a5771721e34f9b118f17a) Change-Id: Ic9f9ee919969cc744be7e7c94729ee7ab9e0e7a1 Signed-off-by: David Wu --- diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index b1e32e7482e9..bcf38fd5106a 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -460,7 +460,7 @@ int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable) if (ret != 0) return ret; - *enable = val & rdev->desc->bypass_mask; + *enable = (val & rdev->desc->bypass_mask) == rdev->desc->bypass_val_on; return 0; }