summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Griffin <peter.griffin@linaro.org>2024-04-26 13:41:29 +0300
committerVinod Koul <vkoul@kernel.org>2024-05-04 14:54:28 +0300
commit2ff6365e2271282bea155541e5e3deb9d9ff1572 (patch)
treedd279bf4d4ea765c78f0c7326eb883129f2e1bbb
parent8b19c45ae4c0480ea07ab9f33c43d0fa6ea43aa1 (diff)
downloadlinux-2ff6365e2271282bea155541e5e3deb9d9ff1572.tar.xz
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.c10
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;
+ }
}
/**