scsi: ufs: qcom: Fail ufs_qcom_power_up_sequence() when core_reset fails
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Fri, 8 Dec 2023 06:58:52 +0000 (12:28 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 14 Dec 2023 04:03:45 +0000 (23:03 -0500)
Even though core_reset is optional, a failure during assert/deassert should
be considered fatal, if core_reset is available. So fail
ufs_qcom_power_up_sequence() if an error happens during reset and also get
rid of the redundant warning as the ufs_qcom_host_reset() function itself
prints error messages.

Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20231208065902.11006-8-manivannan.sadhasivam@linaro.org
Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8775p-ride
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufs-qcom.c

index 604273a22afd27e3c20e3efb50d767126201c7e6..365a61dbf7ea413dc8a8d9b34c7ac508915a7d82 100644 (file)
@@ -317,9 +317,11 @@ static int ufs_qcom_host_reset(struct ufs_hba *hba)
        usleep_range(200, 210);
 
        ret = reset_control_deassert(host->core_reset);
-       if (ret)
+       if (ret) {
                dev_err(hba->dev, "%s: core_reset deassert failed, err = %d\n",
                                 __func__, ret);
+               return ret;
+       }
 
        usleep_range(1000, 1100);
 
@@ -359,8 +361,7 @@ static int ufs_qcom_power_up_sequence(struct ufs_hba *hba)
        /* Reset UFS Host Controller and PHY */
        ret = ufs_qcom_host_reset(hba);
        if (ret)
-               dev_warn(hba->dev, "%s: host reset returned %d\n",
-                                 __func__, ret);
+               return ret;
 
        /* phy initialization - calibrate the phy */
        ret = phy_init(phy);