diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 04baac9a165b..b0ee068310c5 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1584,7 +1584,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id, bool exclusive, bool allow_dummy) { struct regulator_dev *rdev; - struct regulator *regulator = ERR_PTR(-EPROBE_DEFER); + struct regulator *regulator; const char *devname = NULL; int ret; @@ -1596,11 +1596,6 @@ static struct regulator *_regulator_get(struct device *dev, const char *id, if (dev) devname = dev_name(dev); - if (have_full_constraints()) - ret = -ENODEV; - else - ret = -EPROBE_DEFER; - rdev = regulator_dev_lookup(dev, id, &ret); if (rdev) goto found; @@ -1656,6 +1651,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id, } if (!try_module_get(rdev->owner)) { + regulator = ERR_PTR(-EPROBE_DEFER); put_device(&rdev->dev); return regulator; }