mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
ANDROID: GKI: Revert "regulator: Enable supply regulator if child rail is enabled."
This reverts commit b2296bd43e ("regulator: Enable supply
regulator if child rail is enabled.").
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.
Bug: 150508586
Change-Id: Ib8e6db65dcd44c27ef99509ff0cfd2f8e16e9f65
Signed-off-by: David Collins <collinsd@codeaurora.org>
(cherry picked from commit 7a88f5efeab2059093e2398d57d6cd36220b6bc5)
Signed-off-by: Saravana Kannan <saravanak@google.com>
This commit is contained in:
committed by
Saravana Kannan
parent
59e9e8c8fd
commit
fbb4d2d856
@@ -1666,16 +1666,6 @@ static int regulator_resolve_supply(struct regulator_dev *rdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Cascade always-on state to supply */
|
||||
if (_regulator_is_enabled(rdev)) {
|
||||
ret = regulator_enable(rdev->supply);
|
||||
if (ret < 0) {
|
||||
_regulator_put(rdev->supply);
|
||||
rdev->supply = NULL;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user