From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Bart Van Assche <bvanassche@acm.org>
Cc: martin.petersen@oracle.com, jejb@linux.ibm.com,
avri.altman@wdc.com, alim.akhtar@samsung.com,
bjorn.andersson@linaro.org, linux-arm-msm@vger.kernel.org,
quic_asutoshd@quicinc.com, quic_cang@quicinc.com,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 3/5] scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled
Date: Sat, 23 Apr 2022 17:15:35 +0530 [thread overview]
Message-ID: <20220423114535.GB374560@thinkpad> (raw)
In-Reply-To: <5ee685f5-152c-aca0-cc14-646cfae93000@acm.org>
On Fri, Apr 22, 2022 at 10:03:22PM -0700, Bart Van Assche wrote:
> On 4/22/22 06:21, Manivannan Sadhasivam wrote:
> > In ufs_qcom_dev_ref_clk_ctrl(), it was noted that the ref_clk needs to be
> > stable for atleast 1us. Eventhough there is wmb() to make sure the write
> ^ ^
> Some spaces are missing.
>
> > gets "completed", there is no guarantee that the write actually reached
> > the UFS device. There is a good chance that the write could be stored in
> > a Write Buffer (WB). In that case, eventhough the CPU waits for 1us, the
> ^
> missing space----------------------------
>
Kind of used to it ;) Will fix it.
> > ref_clk might not be stable for that period.
> >
> > So lets do a readl() to make sure that the previous write has reached the
> > UFS device before udelay().
> >
> > Cc: stable@vger.kernel.org
> > Fixes: f06fcc7155dc ("scsi: ufs-qcom: add QUniPro hardware support and power optimizations")
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> > drivers/scsi/ufs/ufs-qcom.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
> > index 5f0a8f646eb5..5b9986c63eed 100644
> > --- a/drivers/scsi/ufs/ufs-qcom.c
> > +++ b/drivers/scsi/ufs/ufs-qcom.c
> > @@ -690,6 +690,12 @@ static void ufs_qcom_dev_ref_clk_ctrl(struct ufs_qcom_host *host, bool enable)
> > /* ensure that ref_clk is enabled/disabled before we return */
> > wmb();
> > + /*
> > + * Make sure the write to ref_clk reaches the destination and
> > + * not stored in a Write Buffer (WB).
> > + */
> > + readl(host->dev_ref_clk_ctrl_mmio);
> > +
> > /*
> > * If we call hibern8 exit after this, we need to make sure that
> > * device ref_clk is stable for at least 1us before the hibern8
>
> The comment above the wmb() call looks wrong to me. How about removing that
> wmb() call?
>
Hmm, yes it could be removed as well. readl() on weakly ordered architectures
include a control dependency [1] so there is no way the instructions after it
can be speculated.
Thanks,
Mani
[1] https://www.spinics.net/lists/arm-kernel/msg689858.html
> Thanks,
>
> Bart.
next prev parent reply other threads:[~2022-04-23 11:45 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-22 13:21 [PATCH 0/5] Qcom UFS driver updates Manivannan Sadhasivam
2022-04-22 13:21 ` [PATCH 1/5] scsi: ufs: qcom: Fix acquiring the optional reset control line Manivannan Sadhasivam
2022-04-22 15:40 ` Andrew Halaney
2022-04-23 9:54 ` Manivannan Sadhasivam
2022-04-22 13:21 ` [PATCH 2/5] scsi: ufs: qcom: Simplify handling of devm_phy_get() Manivannan Sadhasivam
2022-04-22 16:51 ` Andrew Halaney
2022-04-22 13:21 ` [PATCH 3/5] scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled Manivannan Sadhasivam
2022-04-23 5:03 ` Bart Van Assche
2022-04-23 11:45 ` Manivannan Sadhasivam [this message]
2022-04-22 13:21 ` [PATCH 4/5] scsi: ufs: core: Remove redundant wmb() in ufshcd_send_command() Manivannan Sadhasivam
2022-04-23 5:19 ` Bart Van Assche
2022-04-23 11:46 ` Manivannan Sadhasivam
2022-04-22 13:21 ` [PATCH 5/5] scsi: ufs: qcom: Enable RPM_AUTOSUSPEND for runtime PM Manivannan Sadhasivam
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=20220423114535.GB374560@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=alim.akhtar@samsung.com \
--cc=avri.altman@wdc.com \
--cc=bjorn.andersson@linaro.org \
--cc=bvanassche@acm.org \
--cc=jejb@linux.ibm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=quic_asutoshd@quicinc.com \
--cc=quic_cang@quicinc.com \
--cc=stable@vger.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