diff options
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/core.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 2ff76349f392..08441e24946e 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -776,10 +776,6 @@ static int set_machine_constraints(struct regulator_dev *rdev, | |||
776 | } | 776 | } |
777 | } | 777 | } |
778 | 778 | ||
779 | /* are we enabled at boot time by firmware / bootloader */ | ||
780 | if (rdev->constraints->boot_on) | ||
781 | rdev->use_count = 1; | ||
782 | |||
783 | /* do we need to setup our suspend state */ | 779 | /* do we need to setup our suspend state */ |
784 | if (constraints->initial_state) { | 780 | if (constraints->initial_state) { |
785 | ret = suspend_prepare(rdev, constraints->initial_state); | 781 | ret = suspend_prepare(rdev, constraints->initial_state); |
@@ -808,11 +804,10 @@ static int set_machine_constraints(struct regulator_dev *rdev, | |||
808 | } | 804 | } |
809 | } | 805 | } |
810 | 806 | ||
811 | /* if always_on is set then turn the regulator on if it's not | 807 | /* If the constraints say the regulator should be on at this point |
812 | * already on. */ | 808 | * and we have control then make sure it is enabled. |
813 | if (constraints->always_on && ops->enable && | 809 | */ |
814 | ((ops->is_enabled && !ops->is_enabled(rdev)) || | 810 | if ((constraints->always_on || constraints->boot_on) && ops->enable) { |
815 | (!ops->is_enabled && !constraints->boot_on))) { | ||
816 | ret = ops->enable(rdev); | 811 | ret = ops->enable(rdev); |
817 | if (ret < 0) { | 812 | if (ret < 0) { |
818 | printk(KERN_ERR "%s: failed to enable %s\n", | 813 | printk(KERN_ERR "%s: failed to enable %s\n", |