]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: phy: extend register to read history 2 of PHY env_monitor
authorEric Huang <echuang@realtek.com>
Wed, 14 Jan 2026 01:39:43 +0000 (09:39 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Thu, 22 Jan 2026 01:36:46 +0000 (09:36 +0800)
For old chips, history is 8 bits storing in single one register, and
RTL8922D's one is 16 bits and two registers. Extend to common flow
accordingly.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/phy.c
drivers/net/wireless/realtek/rtw89/phy.h
drivers/net/wireless/realtek/rtw89/phy_be.c

index 1abd09d9d29c28a85047e96aece6ee47e1ae4f79..d2eb7c66f0414c72c9f417ae8b75d8056cd7b1f5 100644 (file)
@@ -5686,7 +5686,7 @@ struct rtw89_env_monitor_info {
        u16 ifs_clm_cckfa;
        u16 ifs_clm_cckcca_excl_fa;
        u16 ifs_clm_total_ifs;
-       u8 ifs_clm_his[RTW89_IFS_CLM_NUM];
+       u16 ifs_clm_his[RTW89_IFS_CLM_NUM];
        u16 ifs_clm_avg[RTW89_IFS_CLM_NUM];
        u16 ifs_clm_cca[RTW89_IFS_CLM_NUM];
        u8 ifs_clm_tx_ratio;
index 3ae540a6fa4f64311028ce2977a2f746f8649b03..77481695cd2ece0d06fa4317f389e27220b1e127 100644 (file)
@@ -6140,11 +6140,12 @@ static bool rtw89_phy_ifs_clm_get_result(struct rtw89_dev *rtwdev,
        env->ifs_clm_his[1] =
                rtw89_phy_read32_idx(rtwdev, ccx->ifs_his_addr,
                                     ccx->ifs_t2_his_mask, bb->phy_idx);
+
        env->ifs_clm_his[2] =
-               rtw89_phy_read32_idx(rtwdev, ccx->ifs_his_addr,
+               rtw89_phy_read32_idx(rtwdev, ccx->ifs_his_addr2,
                                     ccx->ifs_t3_his_mask, bb->phy_idx);
        env->ifs_clm_his[3] =
-               rtw89_phy_read32_idx(rtwdev, ccx->ifs_his_addr,
+               rtw89_phy_read32_idx(rtwdev, ccx->ifs_his_addr2,
                                     ccx->ifs_t4_his_mask, bb->phy_idx);
 
        env->ifs_clm_avg[0] =
@@ -8185,6 +8186,7 @@ static const struct rtw89_ccx_regs rtw89_ccx_regs_ax = {
        .ifs_clm_ofdm_fa_mask = B_IFS_CLM_OFDM_FA_MSK,
        .ifs_clm_cck_fa_mask = B_IFS_CLM_CCK_FA_MSK,
        .ifs_his_addr = R_IFS_HIS,
+       .ifs_his_addr2 = R_IFS_HIS,
        .ifs_t4_his_mask = B_IFS_T4_HIS_MSK,
        .ifs_t3_his_mask = B_IFS_T3_HIS_MSK,
        .ifs_t2_his_mask = B_IFS_T2_HIS_MSK,
index 8506c607de4d7a7502db5f1e24bc6fa176873542..f285806896268a234e7766b4e78a107cc268a693 100644 (file)
@@ -416,6 +416,7 @@ struct rtw89_ccx_regs {
        u32 ifs_clm_ofdm_fa_mask;
        u32 ifs_clm_cck_fa_mask;
        u32 ifs_his_addr;
+       u32 ifs_his_addr2;
        u32 ifs_t4_his_mask;
        u32 ifs_t3_his_mask;
        u32 ifs_t2_his_mask;
index a609cd0c526884d2efb1a4f53945cecb03070cdf..33c28a1666d4a0191f49c969f06be42b9e47ed9f 100644 (file)
@@ -44,6 +44,7 @@ static const struct rtw89_ccx_regs rtw89_ccx_regs_be = {
        .ifs_clm_ofdm_fa_mask = B_IFS_CLM_OFDM_FA_MSK,
        .ifs_clm_cck_fa_mask = B_IFS_CLM_CCK_FA_MSK,
        .ifs_his_addr = R_IFS_HIS_V1,
+       .ifs_his_addr2 = R_IFS_HIS_V1,
        .ifs_t4_his_mask = B_IFS_T4_HIS_MSK,
        .ifs_t3_his_mask = B_IFS_T3_HIS_MSK,
        .ifs_t2_his_mask = B_IFS_T2_HIS_MSK,
@@ -111,6 +112,7 @@ static const struct rtw89_ccx_regs rtw89_ccx_regs_be_v1 = {
        .ifs_clm_ofdm_fa_mask = B_IFS_CLM_OFDM_FA_MSK,
        .ifs_clm_cck_fa_mask = B_IFS_CLM_CCK_FA_MSK,
        .ifs_his_addr = R_IFS_T1_HIS_BE4,
+       .ifs_his_addr2 = R_IFS_T3_HIS_BE4, /* for 3/4 */
        .ifs_t4_his_mask = B_IFS_T4_HIS_BE4,
        .ifs_t3_his_mask = B_IFS_T3_HIS_BE4,
        .ifs_t2_his_mask = B_IFS_T2_HIS_BE4,