linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: Andrew Halaney <ahalaney@redhat.com>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Hannes Reinecke <hare@suse.de>, Janek Kotas <jank@cadence.com>,
	Alim Akhtar <alim.akhtar@samsung.com>,
	Avri Altman <avri.altman@wdc.com>,
	Can Guo <quic_cang@quicinc.com>
Cc: Will Deacon <will@kernel.org>,
	linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC v3 07/11] scsi: ufs: core: Perform read back after writing UTP_TASK_REQ_LIST_BASE_H
Date: Thu, 21 Dec 2023 11:30:31 -0800	[thread overview]
Message-ID: <ca0b2a81-c0a0-4392-bcc1-5590caf699c7@acm.org> (raw)
In-Reply-To: <20231221-ufs-reset-ensure-effect-before-delay-v3-7-2195a1b66d2e@redhat.com>

On 12/21/23 11:09, Andrew Halaney wrote:
> Currently, the UTP_TASK_REQ_LIST_BASE_L/UTP_TASK_REQ_LIST_BASE_H regs
> are written to and then completed with an mb().
> 
> mb() ensure that the write completes, but completion doesn't mean that
> it isn't stored in a buffer somewhere. The recommendation for
> ensuring these bits have taken effect on the device is to perform a read
> back to force it to make it all the way to the device. This is
> documented in device-io.rst and a talk by Will Deacon on this can
> be seen over here:
> 
>      https://youtu.be/i6DayghhA8Q?si=MiyxB5cKJXSaoc01&t=1678
> 
> Let's do that to ensure the bits hit the device. Because the mb()'s
> purpose wasn't to add extra ordering (on top of the ordering guaranteed
> by writel()/readl()), it can safely be removed.
> 
> Fixes: 88441a8d355d ("scsi: ufs: core: Add hibernation callbacks")
> Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
> ---
>   drivers/ufs/core/ufshcd.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index d1e33328ff3f..7bfb556e5b8e 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -10351,7 +10351,7 @@ int ufshcd_system_restore(struct device *dev)
>   	 * are updated with the latest queue addresses. Only after
>   	 * updating these addresses, we can queue the new commands.
>   	 */
> -	mb();
> +	ufshcd_readl(hba, REG_UTP_TASK_REQ_LIST_BASE_H);
>   
>   	/* Resuming from hibernate, assume that link was OFF */
>   	ufshcd_set_link_off(hba);

Reviewed-by: Bart Van Assche <bvanassche@acm.org>

  reply	other threads:[~2023-12-21 19:30 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-21 19:09 [PATCH RFC v3 00/11] scsi: ufs: Remove overzealous memory barriers Andrew Halaney
2023-12-21 19:09 ` [PATCH RFC v3 01/11] scsi: ufs: qcom: Perform read back after writing reset bit Andrew Halaney
2023-12-22  8:18   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 02/11] scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US Andrew Halaney
2023-12-22  8:18   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 03/11] scsi: ufs: qcom: Perform read back after writing testbus config Andrew Halaney
2023-12-22  8:20   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 04/11] scsi: ufs: qcom: Perform read back after writing unipro mode Andrew Halaney
2023-12-22  8:23   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 05/11] scsi: ufs: qcom: Perform read back after writing CGC enable Andrew Halaney
2023-12-22  8:25   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 06/11] scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV Andrew Halaney
2023-12-21 19:09 ` [PATCH RFC v3 07/11] scsi: ufs: core: Perform read back after writing UTP_TASK_REQ_LIST_BASE_H Andrew Halaney
2023-12-21 19:30   ` Bart Van Assche [this message]
2023-12-22  8:26   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 08/11] scsi: ufs: core: Perform read back after disabling interrupts Andrew Halaney
2023-12-21 19:30   ` Bart Van Assche
2023-12-22  8:26   ` Can Guo
2023-12-21 19:09 ` [PATCH RFC v3 09/11] scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL Andrew Halaney
2023-12-21 19:29   ` Bart Van Assche
2023-12-22  8:26   ` Can Guo
2023-12-27  6:16   ` Manivannan Sadhasivam
2023-12-21 19:09 ` [PATCH RFC v3 10/11] scsi: ufs: core: Perform read back to commit doorbell Andrew Halaney
2023-12-21 19:28   ` Bart Van Assche
2023-12-22  8:27   ` Can Guo
2023-12-27  6:18   ` Manivannan Sadhasivam
2023-12-21 19:09 ` [PATCH RFC v3 11/11] scsi: ufs: core: Perform read back before writing run/stop regs Andrew Halaney
2023-12-21 19:25   ` Bart Van Assche
2023-12-22  8:27   ` Can Guo
2023-12-27  6:21   ` Manivannan Sadhasivam
2023-12-21 19:13 ` [PATCH RFC v3 00/11] scsi: ufs: Remove overzealous memory barriers Konrad Dybcio

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=ca0b2a81-c0a0-4392-bcc1-5590caf699c7@acm.org \
    --to=bvanassche@acm.org \
    --cc=agross@kernel.org \
    --cc=ahalaney@redhat.com \
    --cc=alim.akhtar@samsung.com \
    --cc=andersson@kernel.org \
    --cc=avri.altman@wdc.com \
    --cc=hare@suse.de \
    --cc=jank@cadence.com \
    --cc=jejb@linux.ibm.com \
    --cc=konrad.dybcio@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=quic_cang@quicinc.com \
    --cc=will@kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).