scsi: ufs-qcom: Apply QUIRK_HOST_TACTIVATE for WDC UFS devices
authorCan Guo <cang@codeaurora.org>
Mon, 24 Feb 2020 04:09:22 +0000 (20:09 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 29 Feb 2020 01:40:01 +0000 (20:40 -0500)
Western Digital UFS devices require host's PA_TACTIVATE to be lower than
device's PA_TACTIVATE, otherwise it may get stuck during hibern8 sequence.

Link: https://lore.kernel.org/r/1582517363-11536-3-git-send-email-cang@codeaurora.org
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Acked-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufs-qcom.c
drivers/scsi/ufs/ufs_quirks.h

index 8339050f0af2a59b04da963cc5be4db936389c76..6115ac62d46c13a7412a527cc0127be312d942b7 100644 (file)
@@ -1012,6 +1012,9 @@ static int ufs_qcom_apply_dev_quirks(struct ufs_hba *hba)
        if (hba->dev_quirks & UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME)
                err = ufs_qcom_quirk_host_pa_saveconfigtime(hba);
 
+       if (hba->dev_info.wmanufacturerid == UFS_VENDOR_WDC)
+               hba->dev_quirks |= UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE;
+
        return err;
 }
 
index d0ab147f98d3ecddd7c75594c74f08044e01da14..df7a1e6805a3ba25b1e27ceff7474ec91b02e7e3 100644 (file)
@@ -15,6 +15,7 @@
 #define UFS_VENDOR_TOSHIBA     0x198
 #define UFS_VENDOR_SAMSUNG     0x1CE
 #define UFS_VENDOR_SKHYNIX     0x1AD
+#define UFS_VENDOR_WDC         0x145
 
 /**
  * ufs_dev_fix - ufs device quirk info