+++ /dev/null
-From 30c219710358c5cca2f8bd2e9e547c6aadf7cf8b Mon Sep 17 00:00:00 2001
-From: Markus Pargmann <mpa@pengutronix.de>
-Date: Thu, 20 Feb 2014 17:36:03 +0100
-Subject: regulator: core: Replace direct ops->enable usage
-
-From: Markus Pargmann <mpa@pengutronix.de>
-
-commit 30c219710358c5cca2f8bd2e9e547c6aadf7cf8b upstream.
-
-There are some direct ops->enable in the regulator core driver. This is
-a potential issue as the function _regulator_do_enable() handles gpio
-regulators and the normal ops->enable calls. These gpio regulators are
-simply ignored when ops->enable is called directly.
-
-One possible bug is that boot-on and always-on gpio regulators are not
-enabled on registration.
-
-This patch replaces all ops->enable calls by _regulator_do_enable.
-
-[Handle missing enable operations -- broonie]
-
-Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
-Signed-off-by: Mark Brown <broonie@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
-
----
- drivers/regulator/core.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
---- a/drivers/regulator/core.c
-+++ b/drivers/regulator/core.c
-@@ -894,6 +894,8 @@ static int machine_constraints_voltage(s
- return 0;
- }
-
-+static int _regulator_do_enable(struct regulator_dev *rdev);
-+
- /**
- * set_machine_constraints - sets regulator constraints
- * @rdev: regulator source
-@@ -950,10 +952,9 @@ static int set_machine_constraints(struc
- /* If the constraints say the regulator should be on at this point
- * and we have control then make sure it is enabled.
- */
-- if ((rdev->constraints->always_on || rdev->constraints->boot_on) &&
-- ops->enable) {
-- ret = ops->enable(rdev);
-- if (ret < 0) {
-+ if (rdev->constraints->always_on || rdev->constraints->boot_on) {
-+ ret = _regulator_do_enable(rdev);
-+ if (ret < 0 && ret != -EINVAL) {
- rdev_err(rdev, "failed to enable\n");
- goto out;
- }
-@@ -3061,9 +3062,8 @@ int regulator_suspend_finish(void)
- struct regulator_ops *ops = rdev->desc->ops;
-
- mutex_lock(&rdev->mutex);
-- if ((rdev->use_count > 0 || rdev->constraints->always_on) &&
-- ops->enable) {
-- error = ops->enable(rdev);
-+ if (rdev->use_count > 0 || rdev->constraints->always_on) {
-+ error = _regulator_do_enable(rdev);
- if (error)
- ret = error;
- } else {