From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Andrew Halaney <ahalaney@redhat.com>
Cc: martin.petersen@oracle.com, jejb@linux.ibm.com,
andersson@kernel.org, konrad.dybcio@linaro.org,
linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-kernel@vger.kernel.org, quic_cang@quicinc.com,
quic_nitirawa@quicinc.com
Subject: Re: [PATCH v2 16/17] scsi: ufs: qcom: Use ufshcd_rmwl() where applicable
Date: Thu, 14 Dec 2023 10:26:50 +0530 [thread overview]
Message-ID: <20231214045650.GA2938@thinkpad> (raw)
In-Reply-To: <wkykvnfc6qmrfy3j4h765gifm2scsrjmxs24nx2lkwakgt6jvv@k5lcdsubrb4o>
On Fri, Dec 08, 2023 at 12:02:03PM -0600, Andrew Halaney wrote:
> On Fri, Dec 08, 2023 at 12:29:01PM +0530, Manivannan Sadhasivam wrote:
> > Instead of using both ufshcd_readl() and ufshcd_writel() to read/modify/
> > write a register, let's make use of the existing helper.
> >
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> > drivers/ufs/host/ufs-qcom.c | 12 ++++--------
> > drivers/ufs/host/ufs-qcom.h | 3 +++
> > 2 files changed, 7 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
> > index 26aa8904c823..549a08645391 100644
> > --- a/drivers/ufs/host/ufs-qcom.c
> > +++ b/drivers/ufs/host/ufs-qcom.c
> > @@ -387,9 +387,8 @@ static int ufs_qcom_power_up_sequence(struct ufs_hba *hba)
> > */
> > static void ufs_qcom_enable_hw_clk_gating(struct ufs_hba *hba)
> > {
> > - ufshcd_writel(hba,
> > - ufshcd_readl(hba, REG_UFS_CFG2) | REG_UFS_CFG2_CGC_EN_ALL,
> > - REG_UFS_CFG2);
> > + ufshcd_rmwl(hba, REG_UFS_CFG2_CGC_EN_ALL, REG_UFS_CFG2_CGC_EN_ALL,
> > + REG_UFS_CFG2);
> >
> > /* Ensure that HW clock gating is enabled before next operations */
> > mb();
> > @@ -1689,11 +1688,8 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba)
> > platform_msi_domain_free_irqs(hba->dev);
> > } else {
> > if (host->hw_ver.major == 6 && host->hw_ver.minor == 0 &&
> > - host->hw_ver.step == 0) {
> > - ufshcd_writel(hba,
> > - ufshcd_readl(hba, REG_UFS_CFG3) | 0x1F000,
> > - REG_UFS_CFG3);
> > - }
> > + host->hw_ver.step == 0)
> > + ufshcd_rmwl(hba, ESI_VEC_MASK, 0x1f00, REG_UFS_CFG3);
>
> Is this right? I feel like you accidentally just shifted what was written
> prior >> 4 bits.
>
> Before: 0x1f000
> After: 0x01f00
>
Doh! you are right, I accidentally missed one 0. Since the series is already
merged, I will send a follow up patch.
> > ufshcd_mcq_enable_esi(hba);
> > }
> >
> > diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
> > index 385480499e71..2ce63a1c7f2f 100644
> > --- a/drivers/ufs/host/ufs-qcom.h
> > +++ b/drivers/ufs/host/ufs-qcom.h
> > @@ -102,6 +102,9 @@ enum {
> > #define TMRLUT_HW_CGC_EN BIT(6)
> > #define OCSC_HW_CGC_EN BIT(7)
> >
> > +/* bit definitions for REG_UFS_CFG3 register */
> > +#define ESI_VEC_MASK GENMASK(22, 12)
> > +
>
> I'll leave it to someone with the docs to review this field. It at least
> contains the bits set above, fwiw. It would be neat to see that
> converted to using the field + a FIELD_PREP to set the bits IMO, but I
> honestly don't have a lot of experience using those APIs so feel free to
> reject that.
>
Fair point. The reason for hardcoding the value in this patch was I didn't get
information on how the value works. But now I got that info, so will address
this in the follow up patch I mentioned above.
- Mani
> > /* bit definitions for REG_UFS_PARAM0 */
> > #define MAX_HS_GEAR_MASK GENMASK(6, 4)
> > #define UFS_QCOM_MAX_GEAR(x) FIELD_GET(MAX_HS_GEAR_MASK, (x))
> > --
> > 2.25.1
> >
>
--
மணிவண்ணன் சதாசிவம்
next prev parent reply other threads:[~2023-12-14 4:57 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-08 6:58 [PATCH v2 00/17] scsi: ufs: qcom: Code cleanups Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 01/17] scsi: ufs: qcom: Use clk_bulk APIs for managing lane clocks Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 02/17] scsi: ufs: qcom: Fix the return value of ufs_qcom_ice_program_key() Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 03/17] scsi: ufs: qcom: Fix the return value when platform_get_resource_byname() fails Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 04/17] scsi: ufs: qcom: Remove superfluous variable assignments Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 05/17] scsi: ufs: qcom: Remove the warning message when core_reset is not available Manivannan Sadhasivam
2023-12-08 9:25 ` Nitin Rawat
2023-12-08 10:28 ` Manivannan Sadhasivam
2023-12-08 13:29 ` Nitin Rawat
2023-12-14 7:13 ` Nitin Rawat
2023-12-14 7:33 ` Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 06/17] scsi: ufs: qcom: Export ufshcd_{enable/disable}_irq helpers and make use of them Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 07/17] scsi: ufs: qcom: Fail ufs_qcom_power_up_sequence() when core_reset fails Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 08/17] scsi: ufs: qcom: Check the return value of ufs_qcom_power_up_sequence() Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 09/17] scsi: ufs: qcom: Remove redundant error print for devm_kzalloc() failure Manivannan Sadhasivam
2023-12-08 9:39 ` Nitin Rawat
2023-12-08 6:58 ` [PATCH v2 10/17] scsi: ufs: qcom: Use dev_err_probe() to simplify error handling of devm_gpiod_get_optional() Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 11/17] scsi: ufs: qcom: Remove unused ufs_qcom_hosts struct array Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 12/17] scsi: ufs: qcom: Sort includes alphabetically Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 13/17] scsi: ufs: qcom: Initialize cycles_in_1us variable in ufs_qcom_set_core_clk_ctrl() Manivannan Sadhasivam
2023-12-08 6:58 ` [PATCH v2 14/17] scsi: ufs: qcom: Simplify ufs_qcom_{assert/deassert}_reset Manivannan Sadhasivam
2023-12-08 17:46 ` Andrew Halaney
2023-12-08 6:59 ` [PATCH v2 15/17] scsi: ufs: qcom: Remove support for host controllers older than v2.0 Manivannan Sadhasivam
2023-12-08 6:59 ` [PATCH v2 16/17] scsi: ufs: qcom: Use ufshcd_rmwl() where applicable Manivannan Sadhasivam
2023-12-08 18:02 ` Andrew Halaney
2023-12-14 4:56 ` Manivannan Sadhasivam [this message]
2023-12-08 6:59 ` [PATCH v2 17/17] scsi: ufs: qcom: Remove unused definitions Manivannan Sadhasivam
2023-12-08 18:03 ` Andrew Halaney
2023-12-08 20:39 ` [PATCH v2 00/17] scsi: ufs: qcom: Code cleanups Andrew Halaney
2023-12-09 17:42 ` Konrad Dybcio
2023-12-14 5:09 ` Manivannan Sadhasivam
2023-12-14 4:10 ` Martin K. Petersen
2023-12-14 4:58 ` Manivannan Sadhasivam
2023-12-19 2:18 ` Martin K. Petersen
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=20231214045650.GA2938@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=ahalaney@redhat.com \
--cc=andersson@kernel.org \
--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=martin.petersen@oracle.com \
--cc=quic_cang@quicinc.com \
--cc=quic_nitirawa@quicinc.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;
as well as URLs for NNTP newsgroup(s).