Skip to content

Commit 3471426

Browse files
anderssonkishon
authored andcommitted
phy: qcom-ufs: Correct usage of regulator_get()
When regulator_get() tries to resolve a regulator supply but fail to find a matching property in DeviceTree it returns a dummy regulator, if a matching supply is specified but unavailable the regulator core will return an error. Based on this we should not ignore errors upon failing to acquire the optional "vddp-ref-clk" supply. Reviewed-by: Vivek Gautam <vivek.gautam@codeaurora.org> Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
1 parent e7d5e41 commit 3471426

1 file changed

Lines changed: 7 additions & 14 deletions

File tree

drivers/phy/phy-qcom-ufs.c

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,9 @@ int ufs_qcom_phy_init_clks(struct ufs_qcom_phy *phy_common)
210210
}
211211
EXPORT_SYMBOL_GPL(ufs_qcom_phy_init_clks);
212212

213-
static int __ufs_qcom_phy_init_vreg(struct device *dev,
214-
struct ufs_qcom_phy_vreg *vreg, const char *name, bool optional)
213+
static int ufs_qcom_phy_init_vreg(struct device *dev,
214+
struct ufs_qcom_phy_vreg *vreg,
215+
const char *name)
215216
{
216217
int err = 0;
217218

@@ -221,9 +222,7 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
221222
vreg->reg = devm_regulator_get(dev, name);
222223
if (IS_ERR(vreg->reg)) {
223224
err = PTR_ERR(vreg->reg);
224-
vreg->reg = NULL;
225-
if (!optional)
226-
dev_err(dev, "failed to get %s, %d\n", name, err);
225+
dev_err(dev, "failed to get %s, %d\n", name, err);
227226
goto out;
228227
}
229228

@@ -263,12 +262,6 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
263262
return err;
264263
}
265264

266-
static int ufs_qcom_phy_init_vreg(struct device *dev,
267-
struct ufs_qcom_phy_vreg *vreg, const char *name)
268-
{
269-
return __ufs_qcom_phy_init_vreg(dev, vreg, name, false);
270-
}
271-
272265
int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy *phy_common)
273266
{
274267
int err;
@@ -284,9 +277,9 @@ int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy *phy_common)
284277
if (err)
285278
goto out;
286279

287-
/* vddp-ref-clk-* properties are optional */
288-
__ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vddp_ref_clk,
289-
"vddp-ref-clk", true);
280+
err = ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vddp_ref_clk,
281+
"vddp-ref-clk");
282+
290283
out:
291284
return err;
292285
}

0 commit comments

Comments
 (0)