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 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.