From f9157b4ed20e81a86d6316bff5c666b76ae6f1a0 Mon Sep 17 00:00:00 2001 From: David Collins Date: Fri, 13 Sep 2013 16:13:59 -0700 Subject: [PATCH] Revert "regulator: Enable supply regulator if child rail is enabled." This reverts commit b2296bd43e781976743354c668a356b0df98e1da. The change results in the following incorrect behavior. If a given regulator has a parent supply and the regulator is enabled either before or during regulator_register(), then regulator_enable() is called on the supply. Unfortunately, there is no matching regulator_disable() call. This means that the parent supply will stay enabled forever even if the child is disabled later. The stated goal of the change was to enable the parent of a regulator which was enabled based on its machine constraints. However, the only constraints that leads to enable() being called for a regulator are boot-on or always-on. If these have been specified for a child regulator then they should have also been specified for its parent regulator. Therefore, there should be no need to explicitly enable the parent when the child is registered. Change-Id: Ib8e6db65dcd44c27ef99509ff0cfd2f8e16e9f65 CRs-Fixed: 540315 Signed-off-by: David Collins [Removed it form regulator_resolve_supply] Signed-off-by: Abhijeet Dharmapurikar --- drivers/regulator/core.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index c62d27a90515..eb515721dfde 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1542,15 +1542,6 @@ static int regulator_resolve_supply(struct regulator_dev *rdev) return ret; } - /* Cascade always-on state to supply */ - if (_regulator_is_enabled(rdev) && rdev->supply) { - ret = regulator_enable(rdev->supply); - if (ret < 0) { - _regulator_put(rdev->supply); - return ret; - } - } - return 0; }