From: Can Guo <cang@codeaurora.org>
To: Bean Huo <huobean@gmail.com>
Cc: alim.akhtar@samsung.com, avri.altman@wdc.com,
asutoshd@codeaurora.org, jejb@linux.ibm.com,
martin.petersen@oracle.com, stanley.chu@mediatek.com,
beanhuo@micron.com, bvanassche@acm.org, tomas.winkler@intel.com,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 5/7] scsi: ufs: Group UFS WB related flags to struct ufs_dev_info
Date: Tue, 22 Dec 2020 14:14:46 +0800 [thread overview]
Message-ID: <12d605355add6c4d55697f69737292eb@codeaurora.org> (raw)
In-Reply-To: <20201215230519.15158-6-huobean@gmail.com>
On 2020-12-16 07:05, 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.
>
Reviewed-by: Can Guo <cang@codeaurora.org>
> Signed-off-by: Bean Huo <beanhuo@micron.com>
> ---
> drivers/scsi/ufs/ufs-sysfs.c | 2 +-
> drivers/scsi/ufs/ufs.h | 27 ++++++++++++++++-----------
> drivers/scsi/ufs/ufshcd.c | 21 ++++++++++-----------
> drivers/scsi/ufs/ufshcd.h | 4 +---
> 4 files changed, 28 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/scsi/ufs/ufs-sysfs.c
> b/drivers/scsi/ufs/ufs-sysfs.c
> index f3ca3d6b82c4..9a9acc722a37 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 sysfs_emit(buf, "%d\n", hba->wb_enabled);
> + return sysfs_emit(buf, "%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 a789e074ae3f..ec74cf360b1f 100644
> --- a/drivers/scsi/ufs/ufs.h
> +++ b/drivers/scsi/ufs/ufs.h
> @@ -527,20 +527,25 @@ 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;
> + u8 max_lu_supported;
> + u16 wmanufacturerid;
> /*UFS device Product Name */
> - u8 *model;
> - u16 wspecversion;
> - u32 clk_gating_wait_us;
> - u8 b_wb_buffer_type;
> - bool b_rpm_dev_flush_capable;
> - u8 b_presrv_uspc_en;
> + u8 *model;
> + u16 wspecversion;
> + u32 clk_gating_wait_us;
> +
> + /* UFS WB related flags */
> + bool wb_enabled;
> + bool wb_buf_flush_enabled;
> + u8 wb_dedicated_lu;
> + u8 wb_buffer_type;
> +
> + 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 5f08f4a59a17..466a85051d54 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);
> }
>
> @@ -7236,13 +7236,12 @@ static void ufshcd_wb_probe(struct ufs_hba
> *hba, u8 *desc_buf)
> * says, in dedicated wb buffer mode, a max of 1 lun would have wb
> * buffer configured.
> */
> - dev_info->b_wb_buffer_type =
> - desc_buf[DEVICE_DESC_PARAM_WB_TYPE];
> + dev_info->wb_buffer_type = desc_buf[DEVICE_DESC_PARAM_WB_TYPE];
>
> dev_info->b_presrv_uspc_en =
> desc_buf[DEVICE_DESC_PARAM_WB_PRESRV_USRSPC_EN];
>
> - if (dev_info->b_wb_buffer_type == WB_BUF_MODE_SHARED) {
> + if (dev_info->wb_buffer_type == WB_BUF_MODE_SHARED) {
> if (!get_unaligned_be32(desc_buf +
> DEVICE_DESC_PARAM_WB_SHARED_ALLOC_UNITS))
> goto wb_disabled;
> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
> index 2a97006a2c93..ee97068158e2 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
> @@ -946,7 +944,7 @@ static inline bool
> ufshcd_keep_autobkops_enabled_except_suspend(
>
> static inline u8 ufshcd_wb_get_query_index(struct ufs_hba *hba)
> {
> - if (hba->dev_info.b_wb_buffer_type == WB_BUF_MODE_LU_DEDICATED)
> + if (hba->dev_info.wb_buffer_type == WB_BUF_MODE_LU_DEDICATED)
> return hba->dev_info.wb_dedicated_lu;
> return 0;
> }
next prev parent reply other threads:[~2020-12-22 6:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-15 23:05 [PATCH v5 0/7] Several changes for UFS WriteBooster Bean Huo
2020-12-15 23:05 ` [PATCH v5 1/7] scsi: ufs: Add "wb_on" sysfs node to control WB on/off Bean Huo
2020-12-22 6:08 ` Stanley Chu
2020-12-22 6:12 ` Can Guo
2020-12-22 20:57 ` Bean Huo
2020-12-22 22:11 ` Bean Huo
2020-12-23 1:31 ` Can Guo
2020-12-23 8:28 ` Bean Huo
2020-12-23 8:30 ` Bean Huo
2020-12-23 9:11 ` Bean Huo
2020-12-22 20:50 ` Bean Huo
2020-12-22 21:08 ` Bean Huo
2020-12-23 21:52 ` Bean Huo
2020-12-15 23:05 ` [PATCH v5 2/7] docs: ABI: Add wb_on documentation for UFS sysfs Bean Huo
2020-12-15 23:05 ` [PATCH v5 3/7] scsi: ufs: Changes comment in the function ufshcd_wb_probe() Bean Huo
2020-12-15 23:05 ` [PATCH v5 4/7] scsi: ufs: Remove two WB related fields from struct ufs_dev_info Bean Huo
2020-12-16 4:15 ` Stanley Chu
2020-12-15 23:05 ` [PATCH v5 5/7] scsi: ufs: Group UFS WB related flags to " Bean Huo
2020-12-16 4:16 ` Stanley Chu
2020-12-22 6:14 ` Can Guo [this message]
2020-12-15 23:05 ` [PATCH v5 6/7] scsi: ufs: Cleanup WB buffer flush toggle implementation Bean Huo
2020-12-16 4:17 ` Stanley Chu
2020-12-22 6:14 ` Can Guo
2020-12-15 23:05 ` [PATCH v5 7/7] scsi: ufs: Keep device active mode only fWriteBoosterBufferFlushDuringHibernate == 1 Bean Huo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12d605355add6c4d55697f69737292eb@codeaurora.org \
--to=cang@codeaurora.org \
--cc=alim.akhtar@samsung.com \
--cc=asutoshd@codeaurora.org \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=huobean@gmail.com \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=stanley.chu@mediatek.com \
--cc=tomas.winkler@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.