wifi: rtw89: rfk: add firmware debug log of TSSI
authorPing-Ke Shih <pkshih@realtek.com>
Fri, 13 Sep 2024 07:13:38 +0000 (15:13 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Fri, 20 Sep 2024 02:47:20 +0000 (10:47 +0800)
TSSI is short for transmitter signal strength indication. Print out the
TSSI log from firmware C2H events.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20240913071340.41822-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/fw.h
drivers/net/wireless/realtek/rtw89/phy.c

index 78820bd28098f95189ad32ff7b02d6364c1e11d1..4980a7041fb82cae45e3a08c877291b251fa01b6 100644 (file)
@@ -4362,6 +4362,14 @@ struct rtw89_c2h_rf_rxdck_rpt_log {
        u8 timeout[2];
 } __packed;
 
+struct rtw89_c2h_rf_tssi_rpt_log {
+       s8 alignment_power[2][2][4];
+       u8 alignment_power_cw_h[2][2][4];
+       u8 alignment_power_cw_l[2][2][4];
+       u8 tssi_alimk_state[2][2];
+       u8 default_txagc_offset[2][2];
+} __packed;
+
 struct rtw89_c2h_rf_txgapk_rpt_log {
        __le32 r0x8010[2];
        __le32 chk_cnt;
index 0c0d25e602c9afb5865186a7b726c7eb367f4e98..c2116c2987fdbd66e6ec3fcf60595405e52ed15b 100644 (file)
@@ -2692,7 +2692,9 @@ static void rtw89_phy_c2h_rfk_rpt_log(struct rtw89_dev *rtwdev,
        struct rtw89_c2h_rf_txgapk_rpt_log *txgapk;
        struct rtw89_c2h_rf_rxdck_rpt_log *rxdck;
        struct rtw89_c2h_rf_dack_rpt_log *dack;
+       struct rtw89_c2h_rf_tssi_rpt_log *tssi;
        struct rtw89_c2h_rf_dpk_rpt_log *dpk;
+       int i, j, k;
 
        switch (func) {
        case RTW89_PHY_C2H_RFK_LOG_FUNC_DPK:
@@ -2770,6 +2772,39 @@ static void rtw89_phy_c2h_rfk_rpt_log(struct rtw89_dev *rtwdev,
                            rxdck->ver, rxdck->band, rxdck->bw, rxdck->ch,
                            rxdck->timeout);
                return;
+       case RTW89_PHY_C2H_RFK_LOG_FUNC_TSSI:
+               if (len != sizeof(*tssi))
+                       goto out;
+
+               tssi = content;
+               for (i = 0; i < 2; i++) {
+                       for (j = 0; j < 2; j++) {
+                               for (k = 0; k < 4; k++) {
+                                       rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                                   "[TSSI] alignment_power_cw_h[%d][%d][%d]=%d\n",
+                                                   i, j, k, tssi->alignment_power_cw_h[i][j][k]);
+                                       rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                                   "[TSSI] alignment_power_cw_l[%d][%d][%d]=%d\n",
+                                                   i, j, k, tssi->alignment_power_cw_l[i][j][k]);
+                                       rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                                   "[TSSI] alignment_power[%d][%d][%d]=%d\n",
+                                                   i, j, k, tssi->alignment_power[i][j][k]);
+                                       rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                                   "[TSSI] alignment_power_cw[%d][%d][%d]=%d\n",
+                                                   i, j, k,
+                                                   (tssi->alignment_power_cw_h[i][j][k] << 8) +
+                                                    tssi->alignment_power_cw_l[i][j][k]);
+                               }
+
+                               rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                           "[TSSI] tssi_alimk_state[%d][%d]=%d\n",
+                                           i, j, tssi->tssi_alimk_state[i][j]);
+                               rtw89_debug(rtwdev, RTW89_DBG_RFK,
+                                           "[TSSI] default_txagc_offset[%d]=%d\n",
+                                           j, tssi->default_txagc_offset[0][j]);
+                       }
+               }
+               return;
        case RTW89_PHY_C2H_RFK_LOG_FUNC_TXGAPK:
                if (len != sizeof(*txgapk))
                        goto out;