Skip to content

Commit a5ccccb

Browse files
vwaxbroonie
authored andcommitted
regulator: core: Respect off_on_delay at startup
We currently do not respect off_on_delay the first time we turn on a regulator. This is problematic since the regulator could have been turned off by the bootloader, or it could it have been turned off during the probe of the regulator driver (such as when regulator-fixed requests the enable GPIO), either of which could potentially have happened less than off_on_delay microseconds ago before the first time a client requests for the regulator to be turned on. We can't know exactly when the regulator was turned off, but initialise off_on_delay to the current time when registering the regulator, so that we guarantee that we respect the off_on_delay in all cases. Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com> Link: https://lore.kernel.org/r/20210422083044.11479-1-vincent.whitchurch@axis.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 013592b commit a5ccccb

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

drivers/regulator/core.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,6 +1439,8 @@ static int set_machine_constraints(struct regulator_dev *rdev)
14391439

14401440
if (rdev->constraints->always_on)
14411441
rdev->use_count++;
1442+
} else if (rdev->desc->off_on_delay) {
1443+
rdev->last_off_jiffy = jiffies;
14421444
}
14431445

14441446
print_constraints(rdev);

0 commit comments

Comments
 (0)