From: Bjorn Andersson <bjorn.anders...@linaro.org>

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.gau...@codeaurora.org>
Reviewed-by: Subhash Jadavani <subha...@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.anders...@linaro.org>
Signed-off-by: Kishon Vijay Abraham I <kis...@ti.com>
---
 drivers/phy/phy-qcom-ufs.c |   21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/phy-qcom-ufs.c
index 4d7f3c0..bbd3171 100644
--- a/drivers/phy/phy-qcom-ufs.c
+++ b/drivers/phy/phy-qcom-ufs.c
@@ -210,8 +210,9 @@ int ufs_qcom_phy_init_clks(struct ufs_qcom_phy *phy_common)
 }
 EXPORT_SYMBOL_GPL(ufs_qcom_phy_init_clks);
 
-static int __ufs_qcom_phy_init_vreg(struct device *dev,
-               struct ufs_qcom_phy_vreg *vreg, const char *name, bool optional)
+static int ufs_qcom_phy_init_vreg(struct device *dev,
+                                 struct ufs_qcom_phy_vreg *vreg,
+                                 const char *name)
 {
        int err = 0;
 
@@ -221,9 +222,7 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
        vreg->reg = devm_regulator_get(dev, name);
        if (IS_ERR(vreg->reg)) {
                err = PTR_ERR(vreg->reg);
-               vreg->reg = NULL;
-               if (!optional)
-                       dev_err(dev, "failed to get %s, %d\n", name, err);
+               dev_err(dev, "failed to get %s, %d\n", name, err);
                goto out;
        }
 
@@ -263,12 +262,6 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
        return err;
 }
 
-static int ufs_qcom_phy_init_vreg(struct device *dev,
-                       struct ufs_qcom_phy_vreg *vreg, const char *name)
-{
-       return __ufs_qcom_phy_init_vreg(dev, vreg, name, false);
-}
-
 int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy *phy_common)
 {
        int err;
@@ -284,9 +277,9 @@ int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy 
*phy_common)
        if (err)
                goto out;
 
-       /* vddp-ref-clk-* properties are optional */
-       __ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vddp_ref_clk,
-                                "vddp-ref-clk", true);
+       err = ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vddp_ref_clk,
+                                    "vddp-ref-clk");
+
 out:
        return err;
 }
-- 
1.7.9.5

Reply via email to