diff mbox series

[v4,3/6] scsi: ufs: Group UFS WB related flags to struct ufs_dev_info

Message ID 20201211140035.20016-4-huobean@gmail.com
State New
Headers show
Series Several changes for UFS WriteBooster | expand

Commit Message

Bean Huo Dec. 11, 2020, 2 p.m. UTC
From: Bean Huo <beanhuo@micron.com>

UFS device-related flags should be grouped in ufs_dev_info. Take
wb_enabled and wb_buf_flush_enabled out from the struct ufs_hba,
group them to struct ufs_dev_info, and align the names of the structure
members vertically

Signed-off-by: Bean Huo <beanhuo@micron.com>
---
 drivers/scsi/ufs/ufs-sysfs.c |  2 +-
 drivers/scsi/ufs/ufs.h       | 33 +++++++++++++++++++--------------
 drivers/scsi/ufs/ufshcd.c    | 16 ++++++++--------
 drivers/scsi/ufs/ufshcd.h    |  2 --
 4 files changed, 28 insertions(+), 25 deletions(-)

Comments

Stanley Chu Dec. 15, 2020, 9:01 a.m. UTC | #1
Hi Bean,

On Fri, 2020-12-11 at 15:00 +0100, Bean Huo wrote:
> From: Bean Huo <beanhuo@micron.com>

> 

> UFS device-related flags should be grouped in ufs_dev_info. Take

> wb_enabled and wb_buf_flush_enabled out from the struct ufs_hba,

> group them to struct ufs_dev_info, and align the names of the structure

> members vertically

> 

> Signed-off-by: Bean Huo <beanhuo@micron.com>

> ---

>  drivers/scsi/ufs/ufs-sysfs.c |  2 +-

>  drivers/scsi/ufs/ufs.h       | 33 +++++++++++++++++++--------------

>  drivers/scsi/ufs/ufshcd.c    | 16 ++++++++--------

>  drivers/scsi/ufs/ufshcd.h    |  2 --

>  4 files changed, 28 insertions(+), 25 deletions(-)

> 

> diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c

> index 2b4e9fe935cc..4bd7e18bb486 100644

> --- a/drivers/scsi/ufs/ufs-sysfs.c

> +++ b/drivers/scsi/ufs/ufs-sysfs.c

> @@ -194,7 +194,7 @@ static ssize_t wb_on_show(struct device *dev, struct device_attribute *attr,

>  {

>  	struct ufs_hba *hba = dev_get_drvdata(dev);

>  

> -	return scnprintf(buf, PAGE_SIZE, "%d\n", hba->wb_enabled);

> +	return scnprintf(buf, PAGE_SIZE, "%d\n", hba->dev_info.wb_enabled);

>  }

>  

>  static ssize_t wb_on_store(struct device *dev, struct device_attribute *attr,

> diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h

> index 14dfda735adf..45bebca29fdd 100644

> --- a/drivers/scsi/ufs/ufs.h

> +++ b/drivers/scsi/ufs/ufs.h

> @@ -527,22 +527,27 @@ struct ufs_vreg_info {

>  };

>  

>  struct ufs_dev_info {

> -	bool f_power_on_wp_en;

> +	bool	f_power_on_wp_en;

>  	/* Keeps information if any of the LU is power on write protected */

> -	bool is_lu_power_on_wp;

> +	bool	is_lu_power_on_wp;

>  	/* Maximum number of general LU supported by the UFS device */

> -	u8 max_lu_supported;

> -	u8 wb_dedicated_lu;

> -	u16 wmanufacturerid;

> -	/*UFS device Product Name */

> -	u8 *model;

> -	u16 wspecversion;

> -	u32 clk_gating_wait_us;

> -	u32 d_ext_ufs_feature_sup;

> -	u8 b_wb_buffer_type;

> -	u32 d_wb_alloc_units;

> -	bool b_rpm_dev_flush_capable;

> -	u8 b_presrv_uspc_en;

> +	u8	max_lu_supported;

> +	u16	wmanufacturerid;

> +	/* UFS device Product Name */

> +	u8	*model;

> +	u16	wspecversion;

> +	u32	clk_gating_wait_us;

> +	u32	d_ext_ufs_feature_sup;

> +

> +	/* UFS WB related flags */

> +	bool	wb_enabled;

> +	bool	wb_buf_flush_enabled;

> +	u8	wb_dedicated_lu;

> +	u8	b_wb_buffer_type;

> +	u32	d_wb_alloc_units;

> +

> +	bool	b_rpm_dev_flush_capable;

> +	u8	b_presrv_uspc_en;


Perhaps we could unify the style of these WB related stuff to wb_* ?

Besides, I am not sure if using tab instead space between the type and
name in this struct is a good idea.

Thanks,
Stanley Chu

>  };

>  

>  /**

> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c

> index 6a5532b752aa..528c257df48c 100644

> --- a/drivers/scsi/ufs/ufshcd.c

> +++ b/drivers/scsi/ufs/ufshcd.c

> @@ -589,8 +589,8 @@ static void ufshcd_device_reset(struct ufs_hba *hba)

>  	if (!err) {

>  		ufshcd_set_ufs_dev_active(hba);

>  		if (ufshcd_is_wb_allowed(hba)) {

> -			hba->wb_enabled = false;

> -			hba->wb_buf_flush_enabled = false;

> +			hba->dev_info.wb_enabled = false;

> +			hba->dev_info.wb_buf_flush_enabled = false;

>  		}

>  	}

>  	if (err != -EOPNOTSUPP)

> @@ -5359,7 +5359,7 @@ int ufshcd_wb_ctrl(struct ufs_hba *hba, bool enable)

>  	if (!ufshcd_is_wb_allowed(hba))

>  		return 0;

>  

> -	if (!(enable ^ hba->wb_enabled))

> +	if (!(enable ^ hba->dev_info.wb_enabled))

>  		return 0;

>  	if (enable)

>  		opcode = UPIU_QUERY_OPCODE_SET_FLAG;

> @@ -5375,7 +5375,7 @@ int ufshcd_wb_ctrl(struct ufs_hba *hba, bool enable)

>  		return ret;

>  	}

>  

> -	hba->wb_enabled = enable;

> +	hba->dev_info.wb_enabled = enable;

>  	dev_dbg(hba->dev, "%s write booster %s %d\n",

>  			__func__, enable ? "enable" : "disable", ret);

>  

> @@ -5415,7 +5415,7 @@ static int ufshcd_wb_buf_flush_enable(struct ufs_hba *hba)

>  	int ret;

>  	u8 index;

>  

> -	if (!ufshcd_is_wb_allowed(hba) || hba->wb_buf_flush_enabled)

> +	if (!ufshcd_is_wb_allowed(hba) || hba->dev_info.wb_buf_flush_enabled)

>  		return 0;

>  

>  	index = ufshcd_wb_get_query_index(hba);

> @@ -5426,7 +5426,7 @@ static int ufshcd_wb_buf_flush_enable(struct ufs_hba *hba)

>  		dev_err(hba->dev, "%s WB - buf flush enable failed %d\n",

>  			__func__, ret);

>  	else

> -		hba->wb_buf_flush_enabled = true;

> +		hba->dev_info.wb_buf_flush_enabled = true;

>  

>  	dev_dbg(hba->dev, "WB - Flush enabled: %d\n", ret);

>  	return ret;

> @@ -5437,7 +5437,7 @@ static int ufshcd_wb_buf_flush_disable(struct ufs_hba *hba)

>  	int ret;

>  	u8 index;

>  

> -	if (!ufshcd_is_wb_allowed(hba) || !hba->wb_buf_flush_enabled)

> +	if (!ufshcd_is_wb_allowed(hba) || !hba->dev_info.wb_buf_flush_enabled)

>  		return 0;

>  

>  	index = ufshcd_wb_get_query_index(hba);

> @@ -5448,7 +5448,7 @@ static int ufshcd_wb_buf_flush_disable(struct ufs_hba *hba)

>  		dev_warn(hba->dev, "%s: WB - buf flush disable failed %d\n",

>  			 __func__, ret);

>  	} else {

> -		hba->wb_buf_flush_enabled = false;

> +		hba->dev_info.wb_buf_flush_enabled = false;

>  		dev_dbg(hba->dev, "WB - Flush disabled: %d\n", ret);

>  	}

>  

> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h

> index 2a97006a2c93..45c3eca88f0e 100644

> --- a/drivers/scsi/ufs/ufshcd.h

> +++ b/drivers/scsi/ufs/ufshcd.h

> @@ -805,8 +805,6 @@ struct ufs_hba {

>  

>  	struct device		bsg_dev;

>  	struct request_queue	*bsg_queue;

> -	bool wb_buf_flush_enabled;

> -	bool wb_enabled;

>  	struct delayed_work rpm_dev_flush_recheck_work;

>  

>  #ifdef CONFIG_SCSI_UFS_CRYPTO
Bean Huo Dec. 15, 2020, 9:42 a.m. UTC | #2
On Tue, 2020-12-15 at 17:01 +0800, Stanley Chu wrote:
> > +     bool    wb_buf_flush_enabled;

> > +     u8      wb_dedicated_lu;

> > +     u8      b_wb_buffer_type;

> > +     u32     d_wb_alloc_units;

> > +

> > +     bool    b_rpm_dev_flush_capable;

> > +     u8      b_presrv_uspc_en;

> 

> Perhaps we could unify the style of these WB related stuff to wb_* ?


yes, agree. I will change them.

> 

> Besides, I am not sure if using tab instead space between the type

> and

> name in this struct is a good idea.

> 

using space, in addition single space, type and parameter names are
mixed. 


use space:

 /* UFS WB related flags */
bool wb_enabled;
bool wb_buf_flush_enabled;
u8
wb_dedicated_lu;
u8 b_wb_buffer_type;
u32 d_wb_alloc_units;

use table:

 /* UFS WB related flags */
bool    wb_enabled;
bool    wb_buf_flush_enabled;
u8      wb_dedicated_lu;
u8      b_wb_buffer_type;
u32     d_wb_alloc_units;

I think, the result is very clear comparing above two examples. yes,
there is no explicit stipulation that we must use space or tab. Both
styles exist in Linux. Maybe this is just matter of personal interest.


Bean

> Thanks,

> Stanley Chu
Stanley Chu Dec. 15, 2020, 10:11 a.m. UTC | #3
On Tue, 2020-12-15 at 10:42 +0100, Bean Huo wrote:
> On Tue, 2020-12-15 at 17:01 +0800, Stanley Chu wrote:

> > > +     bool    wb_buf_flush_enabled;

> > > +     u8      wb_dedicated_lu;

> > > +     u8      b_wb_buffer_type;

> > > +     u32     d_wb_alloc_units;

> > > +

> > > +     bool    b_rpm_dev_flush_capable;

> > > +     u8      b_presrv_uspc_en;

> > 

> > Perhaps we could unify the style of these WB related stuff to wb_* ?

> 

> yes, agree. I will change them.

> 

> > 

> > Besides, I am not sure if using tab instead space between the type

> > and

> > name in this struct is a good idea.

> > 

> using space, in addition single space, type and parameter names are

> mixed. 

> 

> 

> use space:

> 

>  /* UFS WB related flags */

> bool wb_enabled;

> bool wb_buf_flush_enabled;

> u8

> wb_dedicated_lu;

> u8 b_wb_buffer_type;

> u32 d_wb_alloc_units;

> 

> use table:

> 

>  /* UFS WB related flags */

> bool    wb_enabled;

> bool    wb_buf_flush_enabled;

> u8      wb_dedicated_lu;

> u8      b_wb_buffer_type;

> u32     d_wb_alloc_units;

> 

> I think, the result is very clear comparing above two examples. yes,

> there is no explicit stipulation that we must use space or tab. Both

> styles exist in Linux. Maybe this is just matter of personal interest.


Hi Bean,

Yes, I got your point. I am fine with this style change, but just wonder
if it would be better to change all structures in all ufs headers (or at
least all structures in ufs.h) in the same time to make the style
unified in the same file?

Besides, we may need other reviewer's comments for the new style.

Thanks,
Stanley Chu

> 

> 

> Bean

> 

> > Thanks,

> > Stanley Chu

>
diff mbox series

Patch

diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c
index 2b4e9fe935cc..4bd7e18bb486 100644
--- a/drivers/scsi/ufs/ufs-sysfs.c
+++ b/drivers/scsi/ufs/ufs-sysfs.c
@@ -194,7 +194,7 @@  static ssize_t wb_on_show(struct device *dev, struct device_attribute *attr,
 {
 	struct ufs_hba *hba = dev_get_drvdata(dev);
 
-	return scnprintf(buf, PAGE_SIZE, "%d\n", hba->wb_enabled);
+	return scnprintf(buf, PAGE_SIZE, "%d\n", hba->dev_info.wb_enabled);
 }
 
 static ssize_t wb_on_store(struct device *dev, struct device_attribute *attr,
diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
index 14dfda735adf..45bebca29fdd 100644
--- a/drivers/scsi/ufs/ufs.h
+++ b/drivers/scsi/ufs/ufs.h
@@ -527,22 +527,27 @@  struct ufs_vreg_info {
 };
 
 struct ufs_dev_info {
-	bool f_power_on_wp_en;
+	bool	f_power_on_wp_en;
 	/* Keeps information if any of the LU is power on write protected */
-	bool is_lu_power_on_wp;
+	bool	is_lu_power_on_wp;
 	/* Maximum number of general LU supported by the UFS device */
-	u8 max_lu_supported;
-	u8 wb_dedicated_lu;
-	u16 wmanufacturerid;
-	/*UFS device Product Name */
-	u8 *model;
-	u16 wspecversion;
-	u32 clk_gating_wait_us;
-	u32 d_ext_ufs_feature_sup;
-	u8 b_wb_buffer_type;
-	u32 d_wb_alloc_units;
-	bool b_rpm_dev_flush_capable;
-	u8 b_presrv_uspc_en;
+	u8	max_lu_supported;
+	u16	wmanufacturerid;
+	/* UFS device Product Name */
+	u8	*model;
+	u16	wspecversion;
+	u32	clk_gating_wait_us;
+	u32	d_ext_ufs_feature_sup;
+
+	/* UFS WB related flags */
+	bool	wb_enabled;
+	bool	wb_buf_flush_enabled;
+	u8	wb_dedicated_lu;
+	u8	b_wb_buffer_type;
+	u32	d_wb_alloc_units;
+
+	bool	b_rpm_dev_flush_capable;
+	u8	b_presrv_uspc_en;
 };
 
 /**
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 6a5532b752aa..528c257df48c 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -589,8 +589,8 @@  static void ufshcd_device_reset(struct ufs_hba *hba)
 	if (!err) {
 		ufshcd_set_ufs_dev_active(hba);
 		if (ufshcd_is_wb_allowed(hba)) {
-			hba->wb_enabled = false;
-			hba->wb_buf_flush_enabled = false;
+			hba->dev_info.wb_enabled = false;
+			hba->dev_info.wb_buf_flush_enabled = false;
 		}
 	}
 	if (err != -EOPNOTSUPP)
@@ -5359,7 +5359,7 @@  int ufshcd_wb_ctrl(struct ufs_hba *hba, bool enable)
 	if (!ufshcd_is_wb_allowed(hba))
 		return 0;
 
-	if (!(enable ^ hba->wb_enabled))
+	if (!(enable ^ hba->dev_info.wb_enabled))
 		return 0;
 	if (enable)
 		opcode = UPIU_QUERY_OPCODE_SET_FLAG;
@@ -5375,7 +5375,7 @@  int ufshcd_wb_ctrl(struct ufs_hba *hba, bool enable)
 		return ret;
 	}
 
-	hba->wb_enabled = enable;
+	hba->dev_info.wb_enabled = enable;
 	dev_dbg(hba->dev, "%s write booster %s %d\n",
 			__func__, enable ? "enable" : "disable", ret);
 
@@ -5415,7 +5415,7 @@  static int ufshcd_wb_buf_flush_enable(struct ufs_hba *hba)
 	int ret;
 	u8 index;
 
-	if (!ufshcd_is_wb_allowed(hba) || hba->wb_buf_flush_enabled)
+	if (!ufshcd_is_wb_allowed(hba) || hba->dev_info.wb_buf_flush_enabled)
 		return 0;
 
 	index = ufshcd_wb_get_query_index(hba);
@@ -5426,7 +5426,7 @@  static int ufshcd_wb_buf_flush_enable(struct ufs_hba *hba)
 		dev_err(hba->dev, "%s WB - buf flush enable failed %d\n",
 			__func__, ret);
 	else
-		hba->wb_buf_flush_enabled = true;
+		hba->dev_info.wb_buf_flush_enabled = true;
 
 	dev_dbg(hba->dev, "WB - Flush enabled: %d\n", ret);
 	return ret;
@@ -5437,7 +5437,7 @@  static int ufshcd_wb_buf_flush_disable(struct ufs_hba *hba)
 	int ret;
 	u8 index;
 
-	if (!ufshcd_is_wb_allowed(hba) || !hba->wb_buf_flush_enabled)
+	if (!ufshcd_is_wb_allowed(hba) || !hba->dev_info.wb_buf_flush_enabled)
 		return 0;
 
 	index = ufshcd_wb_get_query_index(hba);
@@ -5448,7 +5448,7 @@  static int ufshcd_wb_buf_flush_disable(struct ufs_hba *hba)
 		dev_warn(hba->dev, "%s: WB - buf flush disable failed %d\n",
 			 __func__, ret);
 	} else {
-		hba->wb_buf_flush_enabled = false;
+		hba->dev_info.wb_buf_flush_enabled = false;
 		dev_dbg(hba->dev, "WB - Flush disabled: %d\n", ret);
 	}
 
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 2a97006a2c93..45c3eca88f0e 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -805,8 +805,6 @@  struct ufs_hba {
 
 	struct device		bsg_dev;
 	struct request_queue	*bsg_queue;
-	bool wb_buf_flush_enabled;
-	bool wb_enabled;
 	struct delayed_work rpm_dev_flush_recheck_work;
 
 #ifdef CONFIG_SCSI_UFS_CRYPTO