scsi: ufs: ufs-qcom: Add support to dump HW and SW hibern8 count
authorManish Pandey <quic_mapa@quicinc.com>
Fri, 11 Apr 2025 12:13:43 +0000 (17:43 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 29 Apr 2025 02:00:34 +0000 (22:00 -0400)
Add support to dump HW and SW hibern8 enter and exit counts to enhance
the debugging of hibern8 state transitions.

Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
Link: https://lore.kernel.org/r/20250411121345.16859-2-quic_mapa@quicinc.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufs-qcom.c
drivers/ufs/host/ufs-qcom.h

index 1b37449fbffc50ac4ae347f0d2586e0ee79a14f3..f5181773c0e501e040c5670f4acde6d06b9b0fdc 100644 (file)
@@ -1573,6 +1573,15 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba)
 
        host = ufshcd_get_variant(hba);
 
+       dev_err(hba->dev, "HW_H8_ENTER_CNT=%d\n", ufshcd_readl(hba, REG_UFS_HW_H8_ENTER_CNT));
+       dev_err(hba->dev, "HW_H8_EXIT_CNT=%d\n", ufshcd_readl(hba, REG_UFS_HW_H8_EXIT_CNT));
+
+       dev_err(hba->dev, "SW_H8_ENTER_CNT=%d\n", ufshcd_readl(hba, REG_UFS_SW_H8_ENTER_CNT));
+       dev_err(hba->dev, "SW_H8_EXIT_CNT=%d\n", ufshcd_readl(hba, REG_UFS_SW_H8_EXIT_CNT));
+
+       dev_err(hba->dev, "SW_AFTER_HW_H8_ENTER_CNT=%d\n",
+                       ufshcd_readl(hba, REG_UFS_SW_AFTER_HW_H8_ENTER_CNT));
+
        ufshcd_dump_regs(hba, REG_UFS_SYS1CLK_1US, 16 * 4,
                         "HCI Vendor Specific Registers ");
 
index d0e6ec9128e79dcdfa03e0b4602b5b5cdb8333de..792a68c2ca95c83c60f2c465c4a5d641ac21b31c 100644 (file)
@@ -75,6 +75,15 @@ enum {
        UFS_UFS_DBG_RD_EDTL_RAM                 = 0x1900,
 };
 
+/* QCOM UFS HC vendor specific Hibern8 count registers */
+enum {
+       REG_UFS_HW_H8_ENTER_CNT                 = 0x2700,
+       REG_UFS_SW_H8_ENTER_CNT                 = 0x2704,
+       REG_UFS_SW_AFTER_HW_H8_ENTER_CNT        = 0x2708,
+       REG_UFS_HW_H8_EXIT_CNT                  = 0x270C,
+       REG_UFS_SW_H8_EXIT_CNT                  = 0x2710,
+};
+
 enum {
        UFS_MEM_CQIS_VS         = 0x8,
 };