diff mbox series

scsi: ufs: Increase fDeviceInit poll frequency

Message ID 20220421002429.3136933-1-bvanassche@acm.org
State New
Headers show
Series scsi: ufs: Increase fDeviceInit poll frequency | expand

Commit Message

Bart Van Assche April 21, 2022, 12:24 a.m. UTC
From: Konstantin Vyshetsky <vkon@google.com>

UFS devices are expected to clear fDeviceInit flag in single digit
milliseconds. Current values of 5 to 10 millisecond sleep add to
increased latency during the initialization and resume path. This CL
lowers the sleep range to 500 to 1000 microseconds.

Signed-off-by: Konstantin Vyshetsky <vkon@google.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 drivers/scsi/ufs/ufshcd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Avri Altman April 24, 2022, 6:42 a.m. UTC | #1
> From: Konstantin Vyshetsky <vkon@google.com>
> 
> UFS devices are expected to clear fDeviceInit flag in single digit milliseconds.
> Current values of 5 to 10 millisecond sleep add to increased latency during
> the initialization and resume path. This CL lowers the sleep range to 500 to
> 1000 microseconds.
> 
> Signed-off-by: Konstantin Vyshetsky <vkon@google.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Avri Altman <avri.altman@wdc.com>
Martin K. Petersen April 26, 2022, 2:35 a.m. UTC | #2
Bart,

> UFS devices are expected to clear fDeviceInit flag in single digit
> milliseconds. Current values of 5 to 10 millisecond sleep add to
> increased latency during the initialization and resume path. This CL
> lowers the sleep range to 500 to 1000 microseconds.

Applied to 5.19/scsi-staging, thanks!
diff mbox series

Patch

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 3f9caafa91bf..ba9c7f9ec424 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -4438,7 +4438,7 @@  static int ufshcd_complete_dev_init(struct ufs_hba *hba)
 					QUERY_FLAG_IDN_FDEVICEINIT, 0, &flag_res);
 		if (!flag_res)
 			break;
-		usleep_range(5000, 10000);
+		usleep_range(500, 1000);
 	} while (ktime_before(ktime_get(), timeout));
 
 	if (err) {