From: Mark Brown broonie@linaro.org
Simple code reorganisation so we can change the logic for deciding what full constraints are more easily.
Signed-off-by: Mark Brown broonie@linaro.org --- drivers/regulator/core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 3fe13130baec..02fdf925bb56 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -119,6 +119,11 @@ static const char *rdev_get_name(struct regulator_dev *rdev) return ""; }
+static bool have_full_constraints(void) +{ + return has_full_constraints; +} + /** * of_get_regulator - get a regulator device node based on supply name * @dev: Device pointer for the consumer (of regulator) device @@ -1340,7 +1345,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id, * Assume that a regulator is physically present and enabled * even if it isn't hooked up and just provide a dummy. */ - if (has_full_constraints && allow_dummy) { + if (have_full_constraints() && allow_dummy) { pr_warn("%s supply %s not found, using dummy regulator\n", devname, id);
@@ -3627,7 +3632,7 @@ int regulator_suspend_finish(void) if (error) ret = error; } else { - if (!has_full_constraints) + if (!have_full_constraints()) goto unlock; if (!ops->disable) goto unlock; @@ -3825,7 +3830,7 @@ static int __init regulator_init_complete(void) if (!enabled) goto unlock;
- if (has_full_constraints) { + if (have_full_constraints()) { /* We log since this may kill the system if it * goes wrong. */ rdev_info(rdev, "disabling\n");
From: Mark Brown broonie@linaro.org
Eliminate the gap between DT becoming available and this being used to say we have full constraints by checking directly for DT every time we check for full constraints. This improves interoperaton with optional regulator support.
Signed-off-by: Mark Brown broonie@linaro.org --- drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 02fdf925bb56..d85f31385b24 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -121,7 +121,7 @@ static const char *rdev_get_name(struct regulator_dev *rdev)
static bool have_full_constraints(void) { - return has_full_constraints; + return has_full_constraints || of_have_populated_dt(); }
/**
On Wed, 2013-11-27 at 16:24 +0000, Mark Brown wrote:
From: Mark Brown broonie@linaro.org
Eliminate the gap between DT becoming available and this being used to say we have full constraints by checking directly for DT every time we check for full constraints. This improves interoperaton with optional regulator support.
Signed-off-by: Mark Brown broonie@linaro.org
drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 02fdf925bb56..d85f31385b24 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -121,7 +121,7 @@ static const char *rdev_get_name(struct regulator_dev *rdev) static bool have_full_constraints(void) {
- return has_full_constraints;
- return has_full_constraints || of_have_populated_dt();
} /**
Doesn't this now make this code in regulator_init_complete() redundant..?
if (of_have_populated_dt()) has_full_constraints = true;
Or is keeping this to avoid one less variable check a worthwhile optimisation?
On Wed, Nov 27, 2013 at 04:32:59PM +0000, Jon Medhurst (Tixy) wrote:
Doesn't this now make this code in regulator_init_complete() redundant..?
if (of_have_populated_dt()) has_full_constraints = true;
Yes, it is a bit redundant now.
Or is keeping this to avoid one less variable check a worthwhile optimisation?
I expect it can be removed, I just wanted to check that the function wasn't horribly expensive for some silly reason before I actually went and did that.
On Wed, Nov 27, 2013 at 2:24 PM, Mark Brown broonie@kernel.org wrote:
From: Mark Brown broonie@linaro.org
Eliminate the gap between DT becoming available and this being used to say we have full constraints by checking directly for DT every time we check for full constraints. This improves interoperaton with optional regulator support.
Signed-off-by: Mark Brown broonie@linaro.org
Thanks, Mark.
This makes LVDS on mx6qsabresd functional again.
Tested-by: Fabio Estevam fabio.estevam@freescale.com
On Wed, Nov 27, 2013 at 04:24:16PM +0000, Mark Brown wrote:
From: Mark Brown broonie@linaro.org
Simple code reorganisation so we can change the logic for deciding what full constraints are more easily.
Signed-off-by: Mark Brown broonie@linaro.org
drivers/regulator/core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
I see that you've already applied them, but for what it's worth:
Reviewed-by: Thierry Reding treding@nvidia.com
linaro-kernel@lists.linaro.org