aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/core.c
diff options
context:
space:
mode:
authorDmitry Osipenko <digetx@gmail.com>2021-10-21 21:33:08 +0300
committerMark Brown <broonie@kernel.org>2021-10-23 14:21:11 +0100
commit400d5a5da43c0e84e5aa75151082ea91f0fae3c9 (patch)
tree3b1691bd52365d0beceb4fa68cd6876ed94b3e57 /drivers/regulator/core.c
parentregulator: Fix SY7636A breakage (diff)
downloadlinux-dev-400d5a5da43c0e84e5aa75151082ea91f0fae3c9.tar.xz
linux-dev-400d5a5da43c0e84e5aa75151082ea91f0fae3c9.zip
regulator: Don't error out fixed regulator in regulator_sync_voltage()
Fixed regulator can't change voltage and regulator_sync_voltage() returns -EINVAL in this case. Make regulator_sync_voltage() to succeed for regulators that are incapable to change voltage. On NVIDIA Tegra power management driver needs to sync voltage and we have one device (Trimslice) that uses fixed regulator which is getting synced. The syncing error isn't treated as fatal, but produces a noisy error message. This patch silences that error. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Link: https://lore.kernel.org/r/20211021183308.27786-1-digetx@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator/core.c')
-rw-r--r--drivers/regulator/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 21a2b28ab0ca..f6ca2098cc01 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4249,6 +4249,9 @@ int regulator_sync_voltage(struct regulator *regulator)
struct regulator_voltage *voltage = &regulator->voltage[PM_SUSPEND_ON];
int ret, min_uV, max_uV;
+ if (!regulator_ops_is_valid(rdev, REGULATOR_CHANGE_VOLTAGE))
+ return 0;
+
regulator_lock(rdev);
if (!rdev->desc->ops->set_voltage &&