Re: [PATCH v1 2/2] scsi: ufs: qcom: Update the UIC Command Timeout

From: Bart Van Assche
Date: Wed May 22 2024 - 14:18:53 EST


On 5/22/24 00:01, Bao D. Nguyen wrote:
Change the UIC command timeout to 2 seconds.
This extra time is to allow the uart occasionally print long
debug messages and logging from different modules during
product development. With the default hardcoded 500ms timeout,
the uart printing with interrupt disabled may cause the UIC command
interrupt get starved, resulting in a UIC command timeout and
eventually a watchdog timeout.
When a product development completes, the vendors may
select a different UIC command timeout as desired.

Signed-off-by: Bao D. Nguyen <quic_nguyenb@xxxxxxxxxxx>
---
drivers/ufs/host/ufs-qcom.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 79f8cb3..4649e0f 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -49,6 +49,7 @@ enum {
#define QCOM_UFS_MAX_GEAR 4
#define QCOM_UFS_MAX_LANE 2
+#define QCOM_UIC_CMD_TIMEOUT_MS 2000
enum {
MODE_MIN,
@@ -1111,6 +1112,8 @@ static int ufs_qcom_init(struct ufs_hba *hba)
dev_warn(dev, "%s: failed to configure the testbus %d\n",
__func__, err);
+ hba->uic_cmd_timeout = QCOM_UIC_CMD_TIMEOUT_MS;
+
return 0;
out_variant_clear:

Given the description of patch 1, the addressed issue is not specific to
a single vendor. Is that correct?

Since the described issue is only encountered during development, why to
modify the UIC command timeout unconditionally?

Thanks,

Bart.