regulator: core: Disable unused regulators after deferred probing is done
authorSaravana Kannan <skannan@codeaurora.org>
Wed, 23 Apr 2014 23:10:50 +0000 (18:10 -0500)
committerMark Brown <broonie@linaro.org>
Sun, 1 Jun 2014 18:16:12 +0000 (19:16 +0100)
regulator_init_complete does a scan of regulators which dont have
always-on or consumers are automatically disabled as being unused.
However, with deferred probing, late_initcall() is too soon to
declare a regulator as unused as the regulator itself might not
have registered due to defferal - Example: A regulator deffered due
to i2bus not available which in turn is deffered due to pinctrl
availability.

Since deferred probing is done in late_initcall(), do the cleanup of
unused regulators by regulator_init_complete in late_initcall_sync
instead of late_initcall.

Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
[nm@ti.com: minor rewording]
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/core.c

index e3cb9b6..236ca3f 100644 (file)
@@ -3871,4 +3871,4 @@ unlock:
 
        return 0;
 }
-late_initcall(regulator_init_complete);
+late_initcall_sync(regulator_init_complete);