regulator: core: Don't allow to get regulator until all couples resolved
Don't allow to get regulator until all of its couples resolved because consumer will get EPERM and coupling shall be transparent for the drivers. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
f9503385b1
commit
79d6f049f4
|
@ -1747,6 +1747,16 @@ struct regulator *_regulator_get(struct device *dev, const char *id,
|
|||
return regulator;
|
||||
}
|
||||
|
||||
mutex_lock(®ulator_list_mutex);
|
||||
ret = (rdev->coupling_desc.n_resolved != rdev->coupling_desc.n_coupled);
|
||||
mutex_unlock(®ulator_list_mutex);
|
||||
|
||||
if (ret != 0) {
|
||||
regulator = ERR_PTR(-EPROBE_DEFER);
|
||||
put_device(&rdev->dev);
|
||||
return regulator;
|
||||
}
|
||||
|
||||
ret = regulator_resolve_supply(rdev);
|
||||
if (ret < 0) {
|
||||
regulator = ERR_PTR(ret);
|
||||
|
|
Loading…
Reference in New Issue