summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-03-11 14:07:56 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-12 18:38:47 +0100
commit04bf30115f4ba2beda1efb6cfbae49cdc757f3a9 (patch)
treecde6a01f8a96ea3277d2bfb99f8610e63bb76021 /drivers
parentMerge 3.3-rc6 into driver-core-next (diff)
downloadlinux-04bf30115f4ba2beda1efb6cfbae49cdc757f3a9.tar.xz
linux-04bf30115f4ba2beda1efb6cfbae49cdc757f3a9.zip
regulator: Support driver probe deferral
If we fail to locate a requested regulator return -EPROBE_DEFER. If drivers pass this error code through to their caller (which they really should) then this will ensure that the probe is retried later when further devices become available. In the unusual case where a driver doesn't want this it can override the default behaviour. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/regulator/core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index e9a83f84adaf..fcde037b3461 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1210,7 +1210,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
{
struct regulator_dev *rdev;
struct regulator_map *map;
- struct regulator *regulator = ERR_PTR(-ENODEV);
+ struct regulator *regulator = ERR_PTR(-EPROBE_DEFER);
const char *devname = NULL;
int ret;
@@ -2834,7 +2834,7 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
if (!r) {
dev_err(dev, "Failed to find supply %s\n", supply);
- ret = -ENODEV;
+ ret = -EPROBE_DEFER;
goto scrub;
}