Commit 79d6f049 authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Mark Brown

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: default avatarDmitry Osipenko <digetx@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f9503385
...@@ -1747,6 +1747,16 @@ struct regulator *_regulator_get(struct device *dev, const char *id, ...@@ -1747,6 +1747,16 @@ struct regulator *_regulator_get(struct device *dev, const char *id,
return regulator; return regulator;
} }
mutex_lock(&regulator_list_mutex);
ret = (rdev->coupling_desc.n_resolved != rdev->coupling_desc.n_coupled);
mutex_unlock(&regulator_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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment