mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
UPSTREAM: scsi: ufs: qcom: Fix acquiring the optional reset control line
On Qcom UFS platforms, the reset control line seems to be optional (for
SoCs like MSM8996 and probably for others too). The current logic tries to
mimic the devm_reset_control_get_optional() API but it also continues the
probe if there is an error with the declared reset line in DT/ACPI.
In an ideal case, if the reset line is not declared in DT/ACPI, the probe
should continue. But if there is problem in acquiring the declared reset
line (like EPROBE_DEFER) it should fail and return the appropriate error
code.
Link: https://lore.kernel.org/r/20220504084212.11605-2-manivannan.sadhasivam@linaro.org
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Bug: 234653003
(cherry picked from commit 223b17ed76)
Change-Id: I90a155a1c8035e2c004753b3dc6c5514cd152739
Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
committed by
Bart Van Assche
parent
09550e3245
commit
74e83bcb8f
@@ -985,13 +985,12 @@ static int ufs_qcom_init(struct ufs_hba *hba)
|
||||
host->hba = hba;
|
||||
ufshcd_set_variant(hba, host);
|
||||
|
||||
/* Setup the reset control of HCI */
|
||||
host->core_reset = devm_reset_control_get(hba->dev, "rst");
|
||||
/* Setup the optional reset control of HCI */
|
||||
host->core_reset = devm_reset_control_get_optional(hba->dev, "rst");
|
||||
if (IS_ERR(host->core_reset)) {
|
||||
err = PTR_ERR(host->core_reset);
|
||||
dev_warn(dev, "Failed to get reset control %d\n", err);
|
||||
host->core_reset = NULL;
|
||||
err = 0;
|
||||
err = dev_err_probe(dev, PTR_ERR(host->core_reset),
|
||||
"Failed to get reset control\n");
|
||||
goto out_variant_clear;
|
||||
}
|
||||
|
||||
/* Fire up the reset controller. Failure here is non-fatal. */
|
||||
|
||||
Reference in New Issue
Block a user