mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
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
1 changed files with 10 additions and 0 deletions
|
@ -1747,6 +1747,16 @@ struct regulator *_regulator_get(struct device *dev, const char *id,
|
||||||
return regulator;
|
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);
|
ret = regulator_resolve_supply(rdev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
regulator = ERR_PTR(ret);
|
regulator = ERR_PTR(ret);
|
||||||
|
|
Loading…
Reference in a new issue