[PATCH v1] ufs: core: fix mcq mode dev commad timeout

peter.wang at mediatek.com peter.wang at mediatek.com
Thu Mar 28 04:12:44 PDT 2024


From: Peter Wang <peter.wang at mediatek.com>

When dev command timeout in mcq mode, clear success should return
retry, because return 0, caller consider success and have error log.
"Invalid offset 0x0 in descriptor IDN 0x9, length 0x0"

Signed-off-by: Peter Wang <peter.wang at mediatek.com>
---
 drivers/ufs/core/ufshcd.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index e30fd125988d..5f8749ea347c 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -3217,7 +3217,9 @@ static int ufshcd_wait_for_dev_cmd(struct ufs_hba *hba,
 
 		/* MCQ mode */
 		if (is_mcq_enabled(hba)) {
-			err = ufshcd_clear_cmd(hba, lrbp->task_tag);
+			/* successfully cleared the command, retry if needed */
+			if (ufshcd_clear_cmd(hba, lrbp->task_tag) == 0)
+				err = -EAGAIN;
 			hba->dev_cmd.complete = NULL;
 			return err;
 		}
-- 
2.18.0




More information about the Linux-mediatek mailing list