public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: Lu Hongfei <luhongfei@vivo.com>,
	Alim Akhtar <alim.akhtar@samsung.com>,
	Avri Altman <avri.altman@wdc.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Can Guo <quic_cang@quicinc.com>, Bean Huo <beanhuo@micron.com>,
	Arthur Simchaev <arthur.simchaev@wdc.com>,
	Stanley Chu <stanley.chu@mediatek.com>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Asutosh Das <quic_asutoshd@quicinc.com>,
	"Bao D. Nguyen" <quic_nguyenb@quicinc.com>,
	zhanghui <zhanghui31@xiaomi.com>,
	Po-Wen Kao <powen.kao@mediatek.com>,
	Eric Biggers <ebiggers@google.com>,
	Keoseong Park <keosung.park@samsung.com>,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Cc: opensource.kernel@vivo.com
Subject: Re: [PATCH v2 2/3] scsi: ufs: core: Add ufshcd_wb_buf_resize function to enable WB buffer resize
Date: Fri, 8 Sep 2023 08:38:10 -0700	[thread overview]
Message-ID: <e03f1e62-1f22-422d-9bf8-fab480ccefb7@acm.org> (raw)
In-Reply-To: <20230908102113.547-3-luhongfei@vivo.com>

On 9/8/23 03:20, Lu Hongfei wrote:
> diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
> index f42d99ce5bf1..85caefa421f7 100644
> --- a/drivers/ufs/core/ufshcd-priv.h
> +++ b/drivers/ufs/core/ufshcd-priv.h
> @@ -98,6 +98,7 @@ int ufshcd_exec_raw_upiu_cmd(struct ufs_hba *hba,
>   			     enum query_opcode desc_op);
>   
>   int ufshcd_wb_toggle(struct ufs_hba *hba, bool enable);
> +int ufshcd_wb_buf_resize(struct ufs_hba *hba, u32 resize_op);
>   
>   /* Wrapper functions for safely calling variant operations */
>   static inline const char *ufshcd_get_var_name(struct ufs_hba *hba)
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 93417518c04d..7e4461360cbd 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -6045,6 +6045,27 @@ static bool ufshcd_wb_need_flush(struct ufs_hba *hba)
>   	return ufshcd_wb_presrv_usrspc_keep_vcc_on(hba, avail_buf);
>   }
>   
> +int ufshcd_wb_buf_resize(struct ufs_hba *hba, u32 resize_op)
> +{
> +	int ret;
> +	u8 index;
> +
> +	ufshcd_scsi_block_requests(hba);
> +	if (ufshcd_wait_for_doorbell_clr(hba, 1 * USEC_PER_SEC))
> +		goto out;
> +
> +	index = ufshcd_wb_get_query_index(hba);
> +	ret = ufshcd_query_attr_retry(hba, UPIU_QUERY_OPCODE_WRITE_ATTR,
> +		QUERY_ATTR_IDN_WB_BUF_RESIZE_EN, index, 0, &resize_op);
> +	if (ret)
> +		dev_err(hba->dev,
> +			"%s: Enable WB buf resize operation failed %d\n",
> +			__func__, ret);
> +out:
> +	ufshcd_scsi_unblock_requests(hba);
> +	return ret;
> +}
> +
>   static void ufshcd_rpm_dev_flush_recheck_work(struct work_struct *work)
>   {
>   	struct ufs_hba *hba = container_of(to_delayed_work(work),
> diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
> index 7d07b256e906..7dd560dc22c6 100644
> --- a/include/ufs/ufshcd.h
> +++ b/include/ufs/ufshcd.h
> @@ -1381,6 +1381,7 @@ int ufshcd_advanced_rpmb_req_handler(struct ufs_hba *hba, struct utp_upiu_req *r
>   				     struct ufs_ehs *ehs_rsp, int sg_cnt,
>   				     struct scatterlist *sg_list, enum dma_data_direction dir);
>   int ufshcd_wb_toggle(struct ufs_hba *hba, bool enable);
> +int ufshcd_wb_buf_resize(struct ufs_hba *hba, u32 resize_op);
>   int ufshcd_wb_toggle_buf_flush(struct ufs_hba *hba, bool enable);
>   int ufshcd_suspend_prepare(struct device *dev);
>   int __ufshcd_suspend_prepare(struct device *dev, bool rpm_ok_for_spm);

My feedback about this patch is as follows:
- If a new function (ufshcd_wb_buf_resize()) is introduced, a caller for 
that function should be introduced in the same patch.
- Function declarations should be added either in the private header 
file or in the public header file (include/ufs/ufshcd.h) but not in both.
- The name of the ufshcd_wb_buf_resize() function seems misleading to 
me. To me that name suggests that this functions resizes the 
WriteBooster buffer. That's not what that function does - what it does 
it to configure whether or not the UFS device is allowed to resize the 
WB buffer.
- Please remove the ufshcd_scsi_block_requests(), 
ufshcd_wait_for_doorbell_clr() and ufshcd_scsi_unblock_requests() calls. 
I'm not aware of any requirement to pause SCSI command submission while 
changing whether or not WB buffer resizing is enabled or disabled.

Thanks,

Bart.

  parent reply	other threads:[~2023-09-08 15:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-08 10:20 [PATCH v2 0/3] scsi: ufs: core: support WB buffer resize function Lu Hongfei
2023-09-08 10:20 ` [PATCH v2 1/3] scsi: ufs: core: add wb buffer resize related attr_idn Lu Hongfei
2023-09-08 15:31   ` Bart Van Assche
2023-09-08 10:20 ` [PATCH v2 2/3] scsi: ufs: core: Add ufshcd_wb_buf_resize function to enable WB buffer resize Lu Hongfei
2023-09-08 14:11   ` kernel test robot
2023-09-08 15:38   ` Bart Van Assche [this message]
2023-09-11  8:21   ` Dan Carpenter
2023-09-08 10:20 ` [PATCH v2 3/3] scsi: ufs: core: Add sysfs attributes to control WB buffer resize function Lu Hongfei
2023-09-08 15:43   ` Bart Van Assche
2023-09-10  1:56 ` [PATCH v2 0/3] scsi: ufs: core: support " Can Guo

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=e03f1e62-1f22-422d-9bf8-fab480ccefb7@acm.org \
    --to=bvanassche@acm.org \
    --cc=alim.akhtar@samsung.com \
    --cc=arthur.simchaev@wdc.com \
    --cc=avri.altman@wdc.com \
    --cc=beanhuo@micron.com \
    --cc=ebiggers@google.com \
    --cc=jejb@linux.ibm.com \
    --cc=keosung.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=luhongfei@vivo.com \
    --cc=mani@kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=opensource.kernel@vivo.com \
    --cc=powen.kao@mediatek.com \
    --cc=quic_asutoshd@quicinc.com \
    --cc=quic_cang@quicinc.com \
    --cc=quic_nguyenb@quicinc.com \
    --cc=stanley.chu@mediatek.com \
    --cc=zhanghui31@xiaomi.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox