diff mbox series

[v1,1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices

Message ID 20200610053645.19975-2-stanley.chu@mediatek.com (mailing list archive)
State New, archived
Headers show
Series scsi: ufs: Fix and cleanup device quirk | expand

Commit Message

Stanley Chu June 10, 2020, 5:36 a.m. UTC
It is confirmed that Micron device needs DELAY_BEFORE_LPM
quirk to have a delay before VCC is powered off. So add Micron
vendor ID and this quirk for Micron devices.

Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
---
 drivers/scsi/ufs/ufs_quirks.h | 1 +
 drivers/scsi/ufs/ufshcd.c     | 2 ++
 2 files changed, 3 insertions(+)

Comments

Bean Huo June 10, 2020, 9:06 a.m. UTC | #1
On Wed, 2020-06-10 at 13:36 +0800, Stanley Chu wrote:
> It is confirmed that Micron device needs DELAY_BEFORE_LPM
> quirk to have a delay before VCC is powered off. So add Micron
> vendor ID and this quirk for Micron devices.
> 
> Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>


Thanks,
Bean

> ---
>  drivers/scsi/ufs/ufs_quirks.h | 1 +
>  drivers/scsi/ufs/ufshcd.c     | 2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/drivers/scsi/ufs/ufs_quirks.h
> b/drivers/scsi/ufs/ufs_quirks.h
> index e3175a63c676..e80d5f26a442 100644
> --- a/drivers/scsi/ufs/ufs_quirks.h
> +++ b/drivers/scsi/ufs/ufs_quirks.h
> @@ -12,6 +12,7 @@
>  #define UFS_ANY_VENDOR 0xFFFF
>  #define UFS_ANY_MODEL  "ANY_MODEL"
>  
> +#define UFS_VENDOR_MICRON      0x12C
>  #define UFS_VENDOR_TOSHIBA     0x198
>  #define UFS_VENDOR_SAMSUNG     0x1CE
>  #define UFS_VENDOR_SKHYNIX     0x1AD
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 04b79ca66fdf..dea4fddf9332 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -216,6 +216,8 @@ ufs_get_desired_pm_lvl_for_dev_link_state(enum
> ufs_dev_pwr_mode dev_state,
>  
>  static struct ufs_dev_fix ufs_fixups[] = {
>  	/* UFS cards deviations table */
> +	UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL,
> +		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
>  	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
>  		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
>  	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
> -- 
> 2.18.0
diff mbox series

Patch

diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h
index e3175a63c676..e80d5f26a442 100644
--- a/drivers/scsi/ufs/ufs_quirks.h
+++ b/drivers/scsi/ufs/ufs_quirks.h
@@ -12,6 +12,7 @@ 
 #define UFS_ANY_VENDOR 0xFFFF
 #define UFS_ANY_MODEL  "ANY_MODEL"
 
+#define UFS_VENDOR_MICRON      0x12C
 #define UFS_VENDOR_TOSHIBA     0x198
 #define UFS_VENDOR_SAMSUNG     0x1CE
 #define UFS_VENDOR_SKHYNIX     0x1AD
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 04b79ca66fdf..dea4fddf9332 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -216,6 +216,8 @@  ufs_get_desired_pm_lvl_for_dev_link_state(enum ufs_dev_pwr_mode dev_state,
 
 static struct ufs_dev_fix ufs_fixups[] = {
 	/* UFS cards deviations table */
+	UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL,
+		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
 	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
 		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
 	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,