scsi: ufs: core: Support Updating UIC Command Timeout
authorBao D. Nguyen <quic_nguyenb@quicinc.com>
Wed, 24 Jul 2024 03:49:32 +0000 (20:49 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 3 Aug 2024 01:42:08 +0000 (21:42 -0400)
commit88e6804fb323d1dbe477f002a89755f8b034e890
tree87d53405ae55b880158d30ef1026f2d3dec44052
parent15f7b71b9da6e0caa6a960e5cea4d64e5f12722c
scsi: ufs: core: Support Updating UIC Command Timeout

The default UIC command timeout still remains 500ms.  Allow platform
drivers to override the UIC command timeout if desired.

In a real product, the 500ms timeout value is probably good enough.
However, during the product development where there are a lot of logging
and debug messages being printed to the UART console, interrupt starvations
happen occasionally because the UART may print long debug messages from
different modules in the system.  While printing, the UART may have
interrupts disabled for more than 500ms, causing UIC command timeout.  The
UIC command timeout would trigger more printing from the UFS driver, and
eventually a watchdog timeout may occur unnecessarily.

Add support for overriding the UIC command timeout value with the newly
created uic_cmd_timeout kernel module parameter.  Default value is
500ms. Supported values range from 500ms to 2 seconds.

Signed-off-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Link: https://lore.kernel.org/r/e4e1c87f3f867f270a3d4b5d57a00139ff0e9741.1721792309.git.quic_nguyenb@quicinc.com
Suggested-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c