linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/2] scsi: ufs: Fix and cleanup device quirk
@ 2020-06-10  5:36 Stanley Chu
  2020-06-10  5:36 ` [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices Stanley Chu
  2020-06-10  5:36 ` [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition Stanley Chu
  0 siblings, 2 replies; 6+ messages in thread
From: Stanley Chu @ 2020-06-10  5:36 UTC (permalink / raw)
  To: linux-scsi, martin.petersen, avri.altman, alim.akhtar, jejb, asutoshd
  Cc: beanhuo, cang, matthias.bgg, bvanassche, linux-mediatek,
	linux-arm-kernel, linux-kernel, kuohong.wang, peter.wang,
	chun-hung.wu, andy.teng, chaotian.jing, cc.chou, Stanley Chu

Hi,
this series provides some device quirk fixes and cleanups.

Stanley Chu (2):
  scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
  scsi: ufs: Cleanup device vendor and quirk definition

 drivers/scsi/ufs/ufs_quirks.h | 3 ++-
 drivers/scsi/ufs/ufshcd.c     | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

-- 
2.18.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
  2020-06-10  5:36 [PATCH v1 0/2] scsi: ufs: Fix and cleanup device quirk Stanley Chu
@ 2020-06-10  5:36 ` Stanley Chu
  2020-06-10  9:06   ` Bean Huo
  2020-06-10  5:36 ` [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition Stanley Chu
  1 sibling, 1 reply; 6+ messages in thread
From: Stanley Chu @ 2020-06-10  5:36 UTC (permalink / raw)
  To: linux-scsi, martin.petersen, avri.altman, alim.akhtar, jejb, asutoshd
  Cc: beanhuo, cang, matthias.bgg, bvanassche, linux-mediatek,
	linux-arm-kernel, linux-kernel, kuohong.wang, peter.wang,
	chun-hung.wu, andy.teng, chaotian.jing, cc.chou, Stanley Chu

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(+)

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition
  2020-06-10  5:36 [PATCH v1 0/2] scsi: ufs: Fix and cleanup device quirk Stanley Chu
  2020-06-10  5:36 ` [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices Stanley Chu
@ 2020-06-10  5:36 ` Stanley Chu
  2020-06-11 15:34   ` Alim Akhtar
  1 sibling, 1 reply; 6+ messages in thread
From: Stanley Chu @ 2020-06-10  5:36 UTC (permalink / raw)
  To: linux-scsi, martin.petersen, avri.altman, alim.akhtar, jejb, asutoshd
  Cc: beanhuo, cang, matthias.bgg, bvanassche, linux-mediatek,
	linux-arm-kernel, linux-kernel, kuohong.wang, peter.wang,
	chun-hung.wu, andy.teng, chaotian.jing, cc.chou, Stanley Chu

Cleanup below items,
- Arrange vendor name in alphabetical order
- Squash device quirks as compact as possible in device quirk table
  to enhance performance of the lookup.

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

diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h
index e80d5f26a442..2a0041493e30 100644
--- a/drivers/scsi/ufs/ufs_quirks.h
+++ b/drivers/scsi/ufs/ufs_quirks.h
@@ -13,9 +13,9 @@
 #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
+#define UFS_VENDOR_TOSHIBA     0x198
 #define UFS_VENDOR_WDC         0x145
 
 /**
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index dea4fddf9332..7c93cb446f51 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -219,10 +219,8 @@ static struct ufs_dev_fix ufs_fixups[] = {
 	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,
-		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS),
-	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
+		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
+		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS |
 		UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),
 	UFS_FIX(UFS_VENDOR_TOSHIBA, UFS_ANY_MODEL,
 		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
  2020-06-10  5:36 ` [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices Stanley Chu
@ 2020-06-10  9:06   ` Bean Huo
  0 siblings, 0 replies; 6+ messages in thread
From: Bean Huo @ 2020-06-10  9:06 UTC (permalink / raw)
  To: Stanley Chu, linux-scsi, martin.petersen, avri.altman,
	alim.akhtar, jejb, asutoshd
  Cc: beanhuo, cang, matthias.bgg, bvanassche, linux-mediatek,
	linux-arm-kernel, linux-kernel, kuohong.wang, peter.wang,
	chun-hung.wu, andy.teng, chaotian.jing, cc.chou

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition
  2020-06-10  5:36 ` [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition Stanley Chu
@ 2020-06-11 15:34   ` Alim Akhtar
  2020-06-12  1:27     ` Stanley Chu
  0 siblings, 1 reply; 6+ messages in thread
From: Alim Akhtar @ 2020-06-11 15:34 UTC (permalink / raw)
  To: 'Stanley Chu',
	linux-scsi, martin.petersen, avri.altman, jejb, asutoshd
  Cc: beanhuo, cang, matthias.bgg, bvanassche, linux-mediatek,
	linux-arm-kernel, linux-kernel, kuohong.wang, peter.wang,
	chun-hung.wu, andy.teng, chaotian.jing, cc.chou

Hi Stanley

> -----Original Message-----
> From: Stanley Chu <stanley.chu@mediatek.com>
> Sent: 10 June 2020 11:07
> To: linux-scsi@vger.kernel.org; martin.petersen@oracle.com;
> avri.altman@wdc.com; alim.akhtar@samsung.com; jejb@linux.ibm.com;
> asutoshd@codeaurora.org
> Cc: beanhuo@micron.com; cang@codeaurora.org; matthias.bgg@gmail.com;
> bvanassche@acm.org; linux-mediatek@lists.infradead.org; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> kuohong.wang@mediatek.com; peter.wang@mediatek.com; chun-
> hung.wu@mediatek.com; andy.teng@mediatek.com;
> chaotian.jing@mediatek.com; cc.chou@mediatek.com; Stanley Chu
> <stanley.chu@mediatek.com>
> Subject: [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk
definition
> 
> Cleanup below items,
> - Arrange vendor name in alphabetical order
> - Squash device quirks as compact as possible in device quirk table
>   to enhance performance of the lookup.
> 
> Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
> ---
>  drivers/scsi/ufs/ufs_quirks.h | 2 +-
>  drivers/scsi/ufs/ufshcd.c     | 6 ++----
>  2 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h
index
> e80d5f26a442..2a0041493e30 100644
> --- a/drivers/scsi/ufs/ufs_quirks.h
> +++ b/drivers/scsi/ufs/ufs_quirks.h
> @@ -13,9 +13,9 @@
>  #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
> +#define UFS_VENDOR_TOSHIBA     0x198
>  #define UFS_VENDOR_WDC         0x145
> 
>  /**
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index
> dea4fddf9332..7c93cb446f51 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -219,10 +219,8 @@ static struct ufs_dev_fix ufs_fixups[] = {
>  	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,
> -		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS),
> -	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
> +		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
> +		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS |
>  		UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),
>  	UFS_FIX(UFS_VENDOR_TOSHIBA, UFS_ANY_MODEL,
>  		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
> --
While at this, may be arrange the table in alphabetical order.

> 2.18.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition
  2020-06-11 15:34   ` Alim Akhtar
@ 2020-06-12  1:27     ` Stanley Chu
  0 siblings, 0 replies; 6+ messages in thread
From: Stanley Chu @ 2020-06-12  1:27 UTC (permalink / raw)
  To: Alim Akhtar
  Cc: linux-scsi, martin.petersen, avri.altman, jejb, asutoshd,
	bvanassche, andy.teng, cc.chou, chun-hung.wu, kuohong.wang,
	linux-kernel, cang, linux-mediatek, peter.wang, matthias.bgg,
	chaotian.jing, linux-arm-kernel, beanhuo

Hi Alim,

On Thu, 2020-06-11 at 21:04 +0530, Alim Akhtar wrote:
> Hi Stanley
> 
> > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index
> > dea4fddf9332..7c93cb446f51 100644
> > --- a/drivers/scsi/ufs/ufshcd.c
> > +++ b/drivers/scsi/ufs/ufshcd.c
> > @@ -219,10 +219,8 @@ static struct ufs_dev_fix ufs_fixups[] = {
> >  	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,
> > -		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS),
> > -	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
> > +		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
> > +		UFS_DEVICE_QUIRK_RECOVERY_FROM_DL_NAC_ERRORS |
> >  		UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE),
> >  	UFS_FIX(UFS_VENDOR_TOSHIBA, UFS_ANY_MODEL,
> >  		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
> > --
> While at this, may be arrange the table in alphabetical order.

Sure, fixed in v2.

Thanks for the review.
Stanley Chu


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-12  1:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-10  5:36 [PATCH v1 0/2] scsi: ufs: Fix and cleanup device quirk Stanley Chu
2020-06-10  5:36 ` [PATCH v1 1/2] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices Stanley Chu
2020-06-10  9:06   ` Bean Huo
2020-06-10  5:36 ` [PATCH v1 2/2] scsi: ufs: Cleanup device vendor and quirk definition Stanley Chu
2020-06-11 15:34   ` Alim Akhtar
2020-06-12  1:27     ` Stanley Chu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).