diff options
author | Peter Griffin <peter.griffin@linaro.org> | 2024-04-26 11:41:29 +0100 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2024-05-04 17:24:28 +0530 |
commit | 2ff6365e2271282bea155541e5e3deb9d9ff1572 (patch) | |
tree | dd279bf4d4ea765c78f0c7326eb883129f2e1bbb | |
parent | 8b19c45ae4c0480ea07ab9f33c43d0fa6ea43aa1 (diff) |
phy: samsung-ufs: ufs: exit on first reported error
To preserve the err value, exit the loop immediately if an error
is returned.
Fixes: f2c6d0fa197a ("phy: samsung-ufs: use exynos_get_pmu_regmap_by_phandle() to obtain PMU regmap")
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://lore.kernel.org/r/20240426104129.2211949-3-peter.griffin@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r-- | drivers/phy/samsung/phy-samsung-ufs.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/phy/samsung/phy-samsung-ufs.c b/drivers/phy/samsung/phy-samsung-ufs.c index ffc46c953ed6..6c5d41552649 100644 --- a/drivers/phy/samsung/phy-samsung-ufs.c +++ b/drivers/phy/samsung/phy-samsung-ufs.c @@ -99,12 +99,18 @@ static int samsung_ufs_phy_calibrate(struct phy *phy) for_each_phy_lane(ufs_phy, i) { if (ufs_phy->ufs_phy_state == CFG_PRE_INIT && - ufs_phy->drvdata->wait_for_cal) + ufs_phy->drvdata->wait_for_cal) { err = ufs_phy->drvdata->wait_for_cal(phy, i); + if (err) + goto out; + } if (ufs_phy->ufs_phy_state == CFG_POST_PWR_HS && - ufs_phy->drvdata->wait_for_cdr) + ufs_phy->drvdata->wait_for_cdr) { err = ufs_phy->drvdata->wait_for_cdr(phy, i); + if (err) + goto out; + } } /** |