rtw88: add CCK_PD debug log
authorPing-Ke Shih <pkshih@realtek.com>
Mon, 9 Nov 2020 09:01:23 +0000 (17:01 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Nov 2020 09:15:26 +0000 (11:15 +0200)
In order to help debugging in field, we add some log messages.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201109090123.9254-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/phy.c
drivers/net/wireless/realtek/rtw88/reg.h
drivers/net/wireless/realtek/rtw88/rtw8723d.c
drivers/net/wireless/realtek/rtw88/rtw8821c.c
drivers/net/wireless/realtek/rtw88/rtw8822c.c

index 5cd9cc42648eb887cb2c3e61ebd78127c76924ad..d44960cd940c386597aab401b0609567cd15e96d 100644 (file)
@@ -541,6 +541,12 @@ static void rtw_phy_cck_pd(struct rtw_dev *rtwdev)
        else
                dm_info->cck_fa_avg = (dm_info->cck_fa_avg * 3 + cck_fa) >> 2;
 
+       rtw_dbg(rtwdev, RTW_DBG_PHY, "IGI=0x%x, rssi_min=%d, cck_fa=%d\n",
+               dm_info->igi_history[0], dm_info->min_rssi,
+               dm_info->fa_history[0]);
+       rtw_dbg(rtwdev, RTW_DBG_PHY, "cck_fa_avg=%d, cck_pd_default=%d\n",
+               dm_info->cck_fa_avg, dm_info->cck_pd_default);
+
        level = rtw_phy_cck_pd_lv(rtwdev);
 
        if (level >= CCK_PD_LV_MAX)
index 2a4275f3d851b21a37d5176074b8ad14a01b7c71..cf9a3b674d303845461d22d9a771a3df6dc5e124 100644 (file)
 #define REG_2ND_CCA_CTRL       0x0976
 
 #define REG_CCK0_FAREPORT      0xa2c
+#define BIT_CCK0_2RX           BIT(18)
+#define BIT_CCK0_MRC           BIT(22)
 
 #define REG_DIS_DPD            0x0a70
 #define DIS_DPD_MASK           GENMASK(9, 0)
index 0d5cfb6bbef188a38a0036ba3dc28ce4c58f9ebb..92652b80857827c93a350d04ff58e7079df4e6dd 100644 (file)
@@ -1503,10 +1503,22 @@ static void rtw8723d_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
 {
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
        u8 pd[CCK_PD_LV_MAX] = {3, 7, 13, 13, 13};
+       u8 cck_n_rx;
+
+       rtw_dbg(rtwdev, RTW_DBG_PHY, "lv: (%d) -> (%d)\n",
+               dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A], new_lvl);
 
        if (dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] == new_lvl)
                return;
 
+       cck_n_rx = (rtw_read8_mask(rtwdev, REG_CCK0_FAREPORT, BIT_CCK0_2RX) &&
+                   rtw_read8_mask(rtwdev, REG_CCK0_FAREPORT, BIT_CCK0_MRC)) ? 2 : 1;
+       rtw_dbg(rtwdev, RTW_DBG_PHY,
+               "is_linked=%d, lv=%d, n_rx=%d, cs_ratio=0x%x, pd_th=0x%x, cck_fa_avg=%d\n",
+               rtw_is_assoc(rtwdev), new_lvl, cck_n_rx,
+               dm_info->cck_pd_default + new_lvl * 2,
+               pd[new_lvl], dm_info->cck_fa_avg);
+
        dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
 
        dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] = new_lvl;
index 64b14f9ea4a94d45b31dab3618f84e09232f4fcd..3f4b2898cedcf18440d94b430e84e2d93d2d3ed4 100644 (file)
@@ -1020,6 +1020,7 @@ static void rtw8821c_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
 {
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
        u8 pd[CCK_PD_LV_MAX] = {3, 7, 13, 13, 13};
+       u8 cck_n_rx;
 
        if (dm_info->min_rssi > 60) {
                new_lvl = 4;
@@ -1027,9 +1028,20 @@ static void rtw8821c_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
                goto set_cck_pd;
        }
 
+       rtw_dbg(rtwdev, RTW_DBG_PHY, "lv: (%d) -> (%d)\n",
+               dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A], new_lvl);
+
        if (dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] == new_lvl)
                return;
 
+       cck_n_rx = (rtw_read8_mask(rtwdev, REG_CCK0_FAREPORT, BIT_CCK0_2RX) &&
+                   rtw_read8_mask(rtwdev, REG_CCK0_FAREPORT, BIT_CCK0_MRC)) ? 2 : 1;
+       rtw_dbg(rtwdev, RTW_DBG_PHY,
+               "is_linked=%d, lv=%d, n_rx=%d, cs_ratio=0x%x, pd_th=0x%x, cck_fa_avg=%d\n",
+               rtw_is_assoc(rtwdev), new_lvl, cck_n_rx,
+               dm_info->cck_pd_default + new_lvl * 2,
+               pd[new_lvl], dm_info->cck_fa_avg);
+
        dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
 
 set_cck_pd:
index 3313f18838c12d2f22170b50558e3e0c03f549dd..06cefe384f344718d94df8ed5f597894d1926a26 100644 (file)
@@ -3454,6 +3454,10 @@ rtw8822c_phy_cck_pd_set_reg(struct rtw_dev *rtwdev,
                         rtw8822c_cck_pd_reg[bw][nrx].reg_cs,
                         rtw8822c_cck_pd_reg[bw][nrx].mask_cs,
                         cs);
+
+       rtw_dbg(rtwdev, RTW_DBG_PHY,
+               "is_linked=%d, bw=%d, nrx=%d, cs_ratio=0x%x, pd_th=0x%x\n",
+               rtw_is_assoc(rtwdev), bw, nrx, cs, pd);
 }
 
 static void rtw8822c_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
@@ -3467,6 +3471,10 @@ static void rtw8822c_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
        nrx = (u8)rtw_read32_mask(rtwdev, 0x1a2c, 0x60000);
        bw = (u8)rtw_read32_mask(rtwdev, 0x9b0, 0xc);
 
+       rtw_dbg(rtwdev, RTW_DBG_PHY, "lv: (%d) -> (%d) bw=%d nr=%d cck_fa_avg=%d\n",
+               dm_info->cck_pd_lv[bw][nrx], new_lvl, bw, nrx,
+               dm_info->cck_fa_avg);
+
        if (dm_info->cck_pd_lv[bw][nrx] == new_lvl)
                return;