Re: [PATCH V1 2/2] scsi: ufs: ufs-qcom: Enable SKIP DEVICE RESET Quirk

From: Bart Van Assche

Date: Mon Jun 01 2026 - 12:23:20 EST


On 5/31/26 4:50 PM, Nitin Rawat wrote:
-
- /* reset the connected UFS device during power down */
- if (ufs_qcom_is_link_off(hba) && host->device_reset) {
+ /*
+ * For some UFS vendors, skip asserting device reset here.
+ * These vendor parts keep drawing larger current after reset
+ * is asserted until it is deasserted, and the 10ms delay is
+ * not sufficient to prevent OCP (Over Current Protection)
+ * on the regulator. This is for the powerdown case, so
+ * the device reset can be asserted later as part of the
+ * platform shutdown sequence.
+ */
+ if (ufs_qcom_is_link_off(hba) && host->device_reset &&
+ !(hba->quirks & UFSHCD_QUIRK_SKIP_DEVICE_RESET)) {
ufs_qcom_device_reset_ctrl(hba, true);
/*
* After sending the SSU command, asserting the rst_n
@@ -1288,6 +1296,19 @@ static struct ufs_dev_quirk ufs_qcom_dev_fixups[] = {
static void ufs_qcom_fixup_dev_quirks(struct ufs_hba *hba)
{
ufshcd_fixup_dev_quirks(hba, ufs_qcom_dev_fixups);
+
+ /*
+ * Some UFS parts keep drawing larger current after reset is asserted
+ * until it is deasserted. The 10ms delay added after asserting HWRST
+ * (as done for other vendors) is not sufficient for these parts.
+ *
+ * Skip asserting device reset during UFS power down for these parts
+ * to prevent OCP (Over Current Protection) fault on the regulator.
+ * This is handled only in shutdown; the device reset will be asserted
+ * as part of the platform shutdown sequence.
+ */
+ if (hba->dev_info.wmanufacturerid == UFS_VENDOR_MICRON)
+ hba->quirks |= UFSHCD_QUIRK_SKIP_DEVICE_RESET;
}

Why has this fix been implemented in the ufs-qcom.c source file? Isn't
this an issue that affects all host controllers?

Thanks,

Bart.