[PATCH] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()

vamshi gajjela posted 1 patch 1 month, 4 weeks ago
drivers/ufs/core/ufs-mcq.c | 3 +--
include/ufs/ufshci.h       | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
[PATCH] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()
Posted by vamshi gajjela 1 month, 4 weeks ago
Currently, ufshcd_mcq_enable_esi() manually implements a
read-modify-write sequence using ufshcd_readl() and ufshcd_writel().
It also utilizes a hardcoded magic number (0x2) for the enable bit.

Use ufshcd_rmwl() helper, replace the magic number with the
ESI_ENABLE macro to improve code readability.

No functional change intended.

Signed-off-by: vamshi gajjela <vamshigajjela@google.com>
---
 drivers/ufs/core/ufs-mcq.c | 3 +--
 include/ufs/ufshci.h       | 1 +
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
index 9ab91b4c05b0..64c234096e23 100644
--- a/drivers/ufs/core/ufs-mcq.c
+++ b/drivers/ufs/core/ufs-mcq.c
@@ -431,8 +431,7 @@ void ufshcd_mcq_disable(struct ufs_hba *hba)
 
 void ufshcd_mcq_enable_esi(struct ufs_hba *hba)
 {
-	ufshcd_writel(hba, ufshcd_readl(hba, REG_UFS_MEM_CFG) | 0x2,
-		      REG_UFS_MEM_CFG);
+	ufshcd_rmwl(hba, ESI_ENABLE, ESI_ENABLE, REG_UFS_MEM_CFG);
 }
 EXPORT_SYMBOL_GPL(ufshcd_mcq_enable_esi);
 
diff --git a/include/ufs/ufshci.h b/include/ufs/ufshci.h
index d36df24242a3..806fdaf52bd9 100644
--- a/include/ufs/ufshci.h
+++ b/include/ufs/ufshci.h
@@ -288,6 +288,7 @@ enum {
 
 /* REG_UFS_MEM_CFG - Global Config Registers 300h */
 #define MCQ_MODE_SELECT	BIT(0)
+#define ESI_ENABLE	BIT(1)
 
 /* CQISy - CQ y Interrupt Status Register  */
 #define UFSHCD_MCQ_CQIS_TAIL_ENT_PUSH_STS	0x1
-- 
2.52.0.223.gf5cc29aaa4-goog
Re: [PATCH] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()
Posted by Martin K. Petersen 1 month ago
On Thu, 11 Dec 2025 19:02:27 +0530, vamshi gajjela wrote:

> Currently, ufshcd_mcq_enable_esi() manually implements a
> read-modify-write sequence using ufshcd_readl() and ufshcd_writel().
> It also utilizes a hardcoded magic number (0x2) for the enable bit.
> 
> Use ufshcd_rmwl() helper, replace the magic number with the
> ESI_ENABLE macro to improve code readability.
> 
> [...]

Applied to 6.20/scsi-queue, thanks!

[1/1] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()
      https://git.kernel.org/mkp/scsi/c/e642331c9420

-- 
Martin K. Petersen
Re: [PATCH] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()
Posted by Martin K. Petersen 1 month, 3 weeks ago
vamshi,

> Currently, ufshcd_mcq_enable_esi() manually implements a
> read-modify-write sequence using ufshcd_readl() and ufshcd_writel().
> It also utilizes a hardcoded magic number (0x2) for the enable bit.

Applied to 6.20/scsi-staging, thanks!

-- 
Martin K. Petersen
Re: [PATCH] scsi: ufs: mcq: Refactor ufshcd_mcq_enable_esi()
Posted by Bart Van Assche 1 month, 4 weeks ago
On 12/11/25 5:32 AM, vamshi gajjela wrote:
> Currently, ufshcd_mcq_enable_esi() manually implements a
> read-modify-write sequence using ufshcd_readl() and ufshcd_writel().

Usually this type of change is described as follows: "Use ufshcd_rmwl()
instead of open-coding it".

Anyway:

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