diff options
-rw-r--r-- | drivers/regulator/core.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 04baac9a165b..8028835d3967 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -4540,6 +4540,16 @@ static int __init regulator_init_complete(void) | |||
4540 | if (of_have_populated_dt()) | 4540 | if (of_have_populated_dt()) |
4541 | has_full_constraints = true; | 4541 | has_full_constraints = true; |
4542 | 4542 | ||
4543 | /* | ||
4544 | * Regulators may had failed to resolve their input supplies | ||
4545 | * when were registered, either because the input supply was | ||
4546 | * not registered yet or because its parent device was not | ||
4547 | * bound yet. So attempt to resolve the input supplies for | ||
4548 | * pending regulators before trying to disable unused ones. | ||
4549 | */ | ||
4550 | class_for_each_device(®ulator_class, NULL, NULL, | ||
4551 | regulator_register_resolve_supply); | ||
4552 | |||
4543 | /* If we have a full configuration then disable any regulators | 4553 | /* If we have a full configuration then disable any regulators |
4544 | * we have permission to change the status for and which are | 4554 | * we have permission to change the status for and which are |
4545 | * not in use or always_on. This is effectively the default | 4555 | * not in use or always_on. This is effectively the default |