提交 c6515d2f 编写于 作者: A Axel Lin 提交者: Mark Brown

regulator: qcom_rpm: Don't update vreg->uV/mV if rpm_reg_write fails

Ensure get_voltage return correct voltage if set_voltage fails.
Signed-off-by: NAxel Lin <axel.lin@ingics.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 97bf6af1
......@@ -227,9 +227,11 @@ static int rpm_reg_set_mV_sel(struct regulator_dev *rdev,
return uV;
mutex_lock(&vreg->lock);
vreg->uV = uV;
if (vreg->is_enabled)
ret = rpm_reg_write(vreg, req, vreg->uV / 1000);
ret = rpm_reg_write(vreg, req, uV / 1000);
if (!ret)
vreg->uV = uV;
mutex_unlock(&vreg->lock);
return ret;
......@@ -252,9 +254,11 @@ static int rpm_reg_set_uV_sel(struct regulator_dev *rdev,
return uV;
mutex_lock(&vreg->lock);
vreg->uV = uV;
if (vreg->is_enabled)
ret = rpm_reg_write(vreg, req, vreg->uV);
ret = rpm_reg_write(vreg, req, uV);
if (!ret)
vreg->uV = uV;
mutex_unlock(&vreg->lock);
return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册