scsi: ufs: core: Fix MCQ MAC configuration
authorRohit Ner <rohitner@google.com>
Tue, 20 Feb 2024 09:56:37 +0000 (01:56 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 10 Mar 2024 21:10:15 +0000 (17:10 -0400)
As per JEDEC Standard No. 223E Section 5.9.2, the max # active commands
value programmed by the host sw in MCQConfig.MAC should be one less than
the actual value.

Signed-off-by: Rohit Ner <rohitner@google.com>
Link: https://lore.kernel.org/r/20240220095637.2900067-1-rohitner@google.com
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Reviewed-by: Can Guo <quic_cang@quicinc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufs-mcq.c

index 8db81f1a12d5fc8f39ac7a1010d6a0d1b55a16c9..768bf87cd80d3fe288eeba826ba3db46b4591dd3 100644 (file)
@@ -94,7 +94,7 @@ void ufshcd_mcq_config_mac(struct ufs_hba *hba, u32 max_active_cmds)
 
        val = ufshcd_readl(hba, REG_UFS_MCQ_CFG);
        val &= ~MCQ_CFG_MAC_MASK;
-       val |= FIELD_PREP(MCQ_CFG_MAC_MASK, max_active_cmds);
+       val |= FIELD_PREP(MCQ_CFG_MAC_MASK, max_active_cmds - 1);
        ufshcd_writel(hba, val, REG_UFS_MCQ_CFG);
 }
 EXPORT_SYMBOL_GPL(ufshcd_mcq_config_mac);