2020-02-06 08:23:50

by Can Guo

[permalink] [raw]
Subject: [PATCH] scsi: ufs: Enable HOST_PA_TACTIVATE quirk for WDC UFS devices

Western Digital UFS devices require host PA_TACTIVATE to be lower than
device PA_TACTIVATE, otherwise it may get stuck during hibern8 sequence.

Signed-off-by: Can Guo <[email protected]>

diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h
index d0ab147..df7a1e6 100644
--- a/drivers/scsi/ufs/ufs_quirks.h
+++ b/drivers/scsi/ufs/ufs_quirks.h
@@ -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
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 1fe0a97..a066f00 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -239,6 +239,8 @@ struct ufs_pm_lvl_states ufs_pm_lvl_states[] = {
UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME),
UFS_FIX(UFS_VENDOR_SKHYNIX, "hB8aL1" /*H28U62301AMR*/,
UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME),
+ UFS_FIX(UFS_VENDOR_WDC, UFS_ANY_MODEL,
+ UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),

END_FIX
};
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2020-02-06 13:35:11

by Avri Altman

[permalink] [raw]
Subject: RE: [PATCH] scsi: ufs: Enable HOST_PA_TACTIVATE quirk for WDC UFS devices

Hi,

>
> Western Digital UFS devices require host PA_TACTIVATE to be lower than
> device PA_TACTIVATE, otherwise it may get stuck during hibern8 sequence.
>
> Signed-off-by: Can Guo <[email protected]>

Please allow few more days to consult internally about this.
Thanks,
Avri

2020-02-20 06:20:43

by Avri Altman

[permalink] [raw]
Subject: RE: [PATCH] scsi: ufs: Enable HOST_PA_TACTIVATE quirk for WDC UFS devices

Hi,

>
> /**
> * ufs_dev_fix - ufs device quirk info
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 1fe0a97..a066f00 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -239,6 +239,8 @@ struct ufs_pm_lvl_states ufs_pm_lvl_states[] = {
> UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME),
> UFS_FIX(UFS_VENDOR_SKHYNIX, "hB8aL1" /*H28U62301AMR*/,
> UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME),
> + UFS_FIX(UFS_VENDOR_WDC, UFS_ANY_MODEL,
> + UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),
We are objecting to apply this quirk categorically for all SOC vendors.
Please use a vendor-specific quirk for that.

Thanks,
Avri

2020-02-20 06:35:33

by Can Guo

[permalink] [raw]
Subject: Re: [PATCH] scsi: ufs: Enable HOST_PA_TACTIVATE quirk for WDC UFS devices

On 2020-02-20 14:20, Avri Altman wrote:
> Hi,
>
>>
>> /**
>> * ufs_dev_fix - ufs device quirk info
>> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>> index 1fe0a97..a066f00 100644
>> --- a/drivers/scsi/ufs/ufshcd.c
>> +++ b/drivers/scsi/ufs/ufshcd.c
>> @@ -239,6 +239,8 @@ struct ufs_pm_lvl_states ufs_pm_lvl_states[] = {
>> UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME),
>> UFS_FIX(UFS_VENDOR_SKHYNIX, "hB8aL1" /*H28U62301AMR*/,
>> UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME),
>> + UFS_FIX(UFS_VENDOR_WDC, UFS_ANY_MODEL,
>> + UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),
> We are objecting to apply this quirk categorically for all SOC vendors.
> Please use a vendor-specific quirk for that.
>
> Thanks,
> Avri

Yeah, as we discussed, I will apply it in ufshcd_vops_apply_dev_quirks()
in next version and this is agreed by Stanley as well.