*/
 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();
                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);
                ufshcd_mcq_enable_esi(hba);
        }
 
 
 #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)
+
 /* 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))