2022-04-22 17:22:33

by Manivannan Sadhasivam

[permalink] [raw]
Subject: [PATCH 2/5] scsi: ufs: qcom: Simplify handling of devm_phy_get()

There is no need to call devm_phy_get() if ACPI is used, so skip it.
The "host->generic_phy" pointer should already be NULL due to the kzalloc,
so no need to set it NULL again.

Also, don't print the error message in case of -EPROBE_DEFER and return
the error code directly.

While at it, also remove the comment that has no relationship with
devm_phy_get().

Signed-off-by: Manivannan Sadhasivam <[email protected]>
---
drivers/scsi/ufs/ufs-qcom.c | 26 +++++---------------------
1 file changed, 5 insertions(+), 21 deletions(-)

diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index 5db0fd922062..5f0a8f646eb5 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -1022,28 +1022,12 @@ static int ufs_qcom_init(struct ufs_hba *hba)
err = 0;
}

- /*
- * voting/devoting device ref_clk source is time consuming hence
- * skip devoting it during aggressive clock gating. This clock
- * will still be gated off during runtime suspend.
- */
- host->generic_phy = devm_phy_get(dev, "ufsphy");
-
- if (host->generic_phy == ERR_PTR(-EPROBE_DEFER)) {
- /*
- * UFS driver might be probed before the phy driver does.
- * In that case we would like to return EPROBE_DEFER code.
- */
- err = -EPROBE_DEFER;
- dev_warn(dev, "%s: required phy device. hasn't probed yet. err = %d\n",
- __func__, err);
- goto out_variant_clear;
- } else if (IS_ERR(host->generic_phy)) {
- if (has_acpi_companion(dev)) {
- host->generic_phy = NULL;
- } else {
+ if (!has_acpi_companion(dev)) {
+ host->generic_phy = devm_phy_get(dev, "ufsphy");
+ if (IS_ERR(host->generic_phy)) {
err = PTR_ERR(host->generic_phy);
- dev_err(dev, "%s: PHY get failed %d\n", __func__, err);
+ if (err != -EPROBE_DEFER)
+ dev_err(dev, "Failed to get PHY: %d\n", err);
goto out_variant_clear;
}
}
--
2.25.1


2022-04-22 17:23:27

by Andrew Halaney

[permalink] [raw]
Subject: Re: [PATCH 2/5] scsi: ufs: qcom: Simplify handling of devm_phy_get()

On Fri, Apr 22, 2022 at 06:51:37PM +0530, Manivannan Sadhasivam wrote:
> There is no need to call devm_phy_get() if ACPI is used, so skip it.
> The "host->generic_phy" pointer should already be NULL due to the kzalloc,
> so no need to set it NULL again.
>
> Also, don't print the error message in case of -EPROBE_DEFER and return
> the error code directly.
>
> While at it, also remove the comment that has no relationship with
> devm_phy_get().
>
> Signed-off-by: Manivannan Sadhasivam <[email protected]>
> ---
> drivers/scsi/ufs/ufs-qcom.c | 26 +++++---------------------
> 1 file changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
> index 5db0fd922062..5f0a8f646eb5 100644
> --- a/drivers/scsi/ufs/ufs-qcom.c
> +++ b/drivers/scsi/ufs/ufs-qcom.c
> @@ -1022,28 +1022,12 @@ static int ufs_qcom_init(struct ufs_hba *hba)
> err = 0;
> }
>
> - /*
> - * voting/devoting device ref_clk source is time consuming hence
> - * skip devoting it during aggressive clock gating. This clock
> - * will still be gated off during runtime suspend.
> - */
> - host->generic_phy = devm_phy_get(dev, "ufsphy");
> -
> - if (host->generic_phy == ERR_PTR(-EPROBE_DEFER)) {
> - /*
> - * UFS driver might be probed before the phy driver does.
> - * In that case we would like to return EPROBE_DEFER code.
> - */
> - err = -EPROBE_DEFER;
> - dev_warn(dev, "%s: required phy device. hasn't probed yet. err = %d\n",
> - __func__, err);
> - goto out_variant_clear;
> - } else if (IS_ERR(host->generic_phy)) {
> - if (has_acpi_companion(dev)) {
> - host->generic_phy = NULL;
> - } else {
> + if (!has_acpi_companion(dev)) {
> + host->generic_phy = devm_phy_get(dev, "ufsphy");
> + if (IS_ERR(host->generic_phy)) {
> err = PTR_ERR(host->generic_phy);
> - dev_err(dev, "%s: PHY get failed %d\n", __func__, err);
> + if (err != -EPROBE_DEFER)
> + dev_err(dev, "Failed to get PHY: %d\n", err);

Risking sounding like a bad broken record, but I think this too could
use dev_err_probe().

Looks good to me otherwise!

> goto out_variant_clear;
> }
> }
> --
> 2.25.1
>