[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d8a810772a6956f9b4b8c0f85b2dcc2c@codeaurora.org>
Date: Fri, 20 Jan 2017 01:03:44 +0530
From: vivek.gautam@...eaurora.org
To: Bjorn Andersson <bjorn.andersson@...aro.org>
Cc: Kishon Vijay Abraham I <kishon@...com>,
linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
Subhash Jadavani <subhashj@...eaurora.org>
Subject: Re: [PATCH 2/4] phy: qcom-ufs: Correct usage of regulator_get()
On 2017-01-19 16:17, Bjorn Andersson wrote:
> 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.
>
> Cc: Subhash Jadavani <subhashj@...eaurora.org>
> Cc: Vivek Gautam <vivek.gautam@...eaurora.org>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> ---
Yea, we don't need additional flag to indicate optional regulator.
Change looks good.
Reviewed-by: Vivek Gautam <vivek.gautam@...eaurora.org>
Regards
Vivek
> 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 4d7f3c018223..bbd317158084 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;
> }
Powered by blists - more mailing lists