Revert "regulator: Enable supply regulator if child rail is enabled."

This reverts commit b2296bd43e.

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 <collinsd@codeaurora.org>
[Removed it form regulator_resolve_supply]
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This commit is contained in:
David Collins 2013-09-13 16:13:59 -07:00 committed by Rohit Vaswani
parent a118e09f3c
commit f9157b4ed2

View file

@ -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;
}