]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
regulator: core: streamline supply resolution for always-on/boot-on regulators
authorAndré Draszik <andre.draszik@linaro.org>
Fri, 9 Jan 2026 08:38:40 +0000 (08:38 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 9 Jan 2026 13:37:57 +0000 (13:37 +0000)
commit4f3323b752bfcc185c98ce4fb841cca8b700a7c0
tree4252e1b73f54811cdd2975646978e40882b4c517
parent86a8eeb0e913f4b6a55dabba5122098d4e805e55
regulator: core: streamline supply resolution for always-on/boot-on regulators

For always-on and boot-on regulators, regulator_register() is currently
trying to anticipate the requirement to resolve a supply early.

Unfortunately, this code executes too early, before we have potentially
updated the regulator's always_on constraint as part of
set_machine_constraints(), causing it to miss cases.

Rather than trying to hack it more, just defer to the outcome of
set_machine_constraints(). The latter returns early (without doing any
regulator initialisation) with -EPROBE_DEFER as of commit 'regulator:
core: move supply check earlier in set_machine_constraints()' and is
therefore safe to call multiple times to determine if supplies need to
be resolved early.

Commit 8a866d527ac0 ("regulator: core: Resolve supply name earlier to
prevent double-init") (later updated by
commit 520fb178212d ("regulator: core: Fix regulator supply
registration with sysfs")) added these tests originally to avoid
calling set_machine_constraints() multiple times to try to avoid
voltage glitches due to all the regulator initialisation happening each
time. This isn't an issue anymore as per above.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://patch.msgid.link/20260109-regulators-defer-v2-4-1a25dc968e60@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/core.c