]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: debug: Wi-Fi 7 show count of SER L0 simulation
authorZong-Zhe Yang <kevin_yang@realtek.com>
Fri, 15 May 2026 01:44:21 +0000 (09:44 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 25 May 2026 05:53:51 +0000 (13:53 +0800)
Wi-Fi 7 has dedicated HW register to count SER L0 simulation, i.e.
manually triggered by users. Show count of it in dbgfs ser_counters.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260515014433.16168-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/debug.c

index 8ee800c76cfe6db03b9c91eae2afd75af18fa14d..e5976b8e7056a395982ac67107d68f4e63714451 100644 (file)
@@ -3760,6 +3760,7 @@ rtw89_debug_priv_fw_crash_set(struct rtw89_dev *rtwdev,
 }
 
 struct rtw89_dbg_ser_counters {
+       unsigned int l0_sim;
        unsigned int l0;
        unsigned int l1;
        unsigned int l0_to_l1;
@@ -3780,6 +3781,7 @@ static void rtw89_dbg_get_ser_counters_be(struct rtw89_dev *rtwdev,
 {
        const u32 val = rtw89_read32(rtwdev, R_BE_SER_DBG_INFO);
 
+       cnt->l0_sim = rtw89_read8(rtwdev, R_BE_SER_L0_DBG_CNT1 + 3);
        cnt->l0 = u32_get_bits(val, B_BE_SER_L0_COUNTER_MASK);
        cnt->l1 = u32_get_bits(val, B_BE_SER_L1_COUNTER_MASK);
        cnt->l0_to_l1 = u32_get_bits(val, B_BE_SER_L0_PROMOTE_L1_EVENT_MASK);
@@ -3810,6 +3812,10 @@ static ssize_t rtw89_debug_priv_ser_counters_get(struct rtw89_dev *rtwdev,
        p += scnprintf(p, end - p, "SER L1 SW Count: %u\n", sw_cnt->l1);
        p += scnprintf(p, end - p, "SER L2 SW Count: %u\n", sw_cnt->l2);
 
+       /* Some chipsets don't have dedicated cnt for SER simulation. */
+       p += scnprintf(p, end - p, "---\n");
+       p += scnprintf(p, end - p, "SER L0 Simulation Count: %d\n", cnt.l0_sim);
+
        /* Some chipsets won't record SER simulation in HW cnt. */
        p += scnprintf(p, end - p, "---\n");
        p += scnprintf(p, end - p, "SER L0 Count: %d\n", cnt.l0);