From: Bhupesh Sharma <bhupesh.linux@gmail.com>
Date: Mon, 30 Sep 2024 12:44:30 +0000 (+0200)
Subject: ufs: Clear UECPA once due to LINERESET has happened during LINK_STARTUP
X-Git-Tag: v2025.01-rc5-pxa1908~219^2~6
X-Git-Url: http://git.dujemihanovic.xyz/repo?a=commitdiff_plain;h=002afccdafdea6b6f0e4422e838649567b41e29d;p=u-boot.git

ufs: Clear UECPA once due to LINERESET has happened during LINK_STARTUP

Clear UECPA once in u-boot UFS driver due to LINERESET has happened
during LINK_STARTUP. This makes the u-boot ufs driver behavior related
to UECPA similar to Linux UFS driver.

Ported from Linux kernel commit:
2355b66ed20c ("scsi: ufs: Handle LINERESET indication in err handler")

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-8-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---

diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c
index d99dcdef7d..565a6af140 100644
--- a/drivers/ufs/ufs.c
+++ b/drivers/ufs/ufs.c
@@ -504,6 +504,8 @@ link_startup:
 	if (ret)
 		goto out;
 
+	/* Clear UECPA once due to LINERESET has happened during LINK_STARTUP */
+	ufshcd_readl(hba, REG_UIC_ERROR_CODE_PHY_ADAPTER_LAYER);
 	ret = ufshcd_make_hba_operational(hba);
 out:
 	if (ret)