wifi: rtw89: coex: Still show hardware grant signal info even Wi-Fi is PS
authorChing-Te Ku <ku920601@realtek.com>
Mon, 18 Dec 2023 06:13:35 +0000 (14:13 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 20 Dec 2023 18:27:42 +0000 (20:27 +0200)
This can help to debug the grant signal and antenna path control issue
during Wi-Fi power saving mode.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20231218061341.51255-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c
drivers/net/wireless/realtek/rtw89/mac.c

index 278ebe1333cc82d9bc35d11f2d3c7e43a28f6f0b..a5373660da5bdf2a63d4569d889530266d7a5b1e 100644 (file)
@@ -7922,7 +7922,8 @@ static void _get_gnt(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_coex_gnt *gnt
        struct rtw89_mac_ax_gnt *gnt;
        u32 val, status;
 
-       if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B) {
+       if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B ||
+           chip->chip_id == RTL8851B) {
                rtw89_mac_read_lte(rtwdev, R_AX_LTE_SW_CFG_1, &val);
                rtw89_mac_read_lte(rtwdev, R_AX_GNT_VAL, &status);
 
@@ -7984,27 +7985,25 @@ static void _show_mreg_v1(struct rtw89_dev *rtwdev, struct seq_file *m)
                   bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
                   cx->cnt_bt[BTC_BCNT_SCBDUPDATE]);
 
-       /* To avoid I/O if WL LPS or power-off  */
-       if (!wl->status.map.lps && !wl->status.map.rf_off) {
-               btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
+       btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
+       _get_gnt(rtwdev, &gnt_cfg);
+
+       gnt = gnt_cfg.band[0];
+       seq_printf(m,
+                  " %-15s : pta_owner:%s, phy-0[gnt_wl:%s-%d/gnt_bt:%s-%d], ",
+                  "[gnt_status]",
+                  chip->chip_id == RTL8852C ? "HW" :
+                  btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
+                  gnt.gnt_wl_sw_en ? "SW" : "HW", gnt.gnt_wl,
+                  gnt.gnt_bt_sw_en ? "SW" : "HW", gnt.gnt_bt);
+
+       gnt = gnt_cfg.band[1];
+       seq_printf(m, "phy-1[gnt_wl:%s-%d/gnt_bt:%s-%d]\n",
+                  gnt.gnt_wl_sw_en ? "SW" : "HW",
+                  gnt.gnt_wl,
+                  gnt.gnt_bt_sw_en ? "SW" : "HW",
+                  gnt.gnt_bt);
 
-               _get_gnt(rtwdev, &gnt_cfg);
-               gnt = gnt_cfg.band[0];
-               seq_printf(m,
-                          " %-15s : pta_owner:%s, phy-0[gnt_wl:%s-%d/gnt_bt:%s-%d], ",
-                          "[gnt_status]",
-                          chip->chip_id == RTL8852C ? "HW" :
-                          btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
-                          gnt.gnt_wl_sw_en ? "SW" : "HW", gnt.gnt_wl,
-                          gnt.gnt_bt_sw_en ? "SW" : "HW", gnt.gnt_bt);
-
-               gnt = gnt_cfg.band[1];
-               seq_printf(m, "phy-1[gnt_wl:%s-%d/gnt_bt:%s-%d]\n",
-                          gnt.gnt_wl_sw_en ? "SW" : "HW",
-                          gnt.gnt_wl,
-                          gnt.gnt_bt_sw_en ? "SW" : "HW",
-                          gnt.gnt_bt);
-       }
        pcinfo = &pfwinfo->rpt_fbtc_mregval.cinfo;
        if (!pcinfo->valid) {
                rtw89_debug(rtwdev, RTW89_DBG_BTC,
@@ -8088,27 +8087,25 @@ static void _show_mreg_v2(struct rtw89_dev *rtwdev, struct seq_file *m)
                   bt->scbd, cx->cnt_bt[BTC_BCNT_SCBDREAD],
                   cx->cnt_bt[BTC_BCNT_SCBDUPDATE]);
 
-       /* To avoid I/O if WL LPS or power-off  */
-       if (!wl->status.map.lps && !wl->status.map.rf_off) {
-               btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
+       btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
+       _get_gnt(rtwdev, &gnt_cfg);
+
+       gnt = gnt_cfg.band[0];
+       seq_printf(m,
+                  " %-15s : pta_owner:%s, phy-0[gnt_wl:%s-%d/gnt_bt:%s-%d], ",
+                  "[gnt_status]",
+                  chip->chip_id == RTL8852C ? "HW" :
+                  btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
+                  gnt.gnt_wl_sw_en ? "SW" : "HW", gnt.gnt_wl,
+                  gnt.gnt_bt_sw_en ? "SW" : "HW", gnt.gnt_bt);
+
+       gnt = gnt_cfg.band[1];
+       seq_printf(m, "phy-1[gnt_wl:%s-%d/gnt_bt:%s-%d]\n",
+                  gnt.gnt_wl_sw_en ? "SW" : "HW",
+                  gnt.gnt_wl,
+                  gnt.gnt_bt_sw_en ? "SW" : "HW",
+                  gnt.gnt_bt);
 
-               _get_gnt(rtwdev, &gnt_cfg);
-               gnt = gnt_cfg.band[0];
-               seq_printf(m,
-                          " %-15s : pta_owner:%s, phy-0[gnt_wl:%s-%d/gnt_bt:%s-%d], ",
-                          "[gnt_status]",
-                          chip->chip_id == RTL8852C ? "HW" :
-                          btc->dm.pta_owner == BTC_CTRL_BY_WL ? "WL" : "BT",
-                          gnt.gnt_wl_sw_en ? "SW" : "HW", gnt.gnt_wl,
-                          gnt.gnt_bt_sw_en ? "SW" : "HW", gnt.gnt_bt);
-
-               gnt = gnt_cfg.band[1];
-               seq_printf(m, "phy-1[gnt_wl:%s-%d/gnt_bt:%s-%d]\n",
-                          gnt.gnt_wl_sw_en ? "SW" : "HW",
-                          gnt.gnt_wl,
-                          gnt.gnt_bt_sw_en ? "SW" : "HW",
-                          gnt.gnt_bt);
-       }
        pcinfo = &pfwinfo->rpt_fbtc_mregval.cinfo;
        if (!pcinfo->valid) {
                rtw89_debug(rtwdev, RTW89_DBG_BTC,
index 80ab5fdfdaa0b5ec08d7dcf3452f493f6d5a7388..c485ef2cc3d3049a8eb81be1f9a9dd08b10ed94a 100644 (file)
@@ -5507,7 +5507,8 @@ bool rtw89_mac_get_ctrl_path(struct rtw89_dev *rtwdev)
 
        if (chip->chip_id == RTL8852C)
                return false;
-       else if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B)
+       else if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B ||
+                chip->chip_id == RTL8851B)
                val = rtw89_read8_mask(rtwdev, R_AX_SYS_SDIO_CTRL + 3,
                                       B_AX_LTE_MUX_CTRL_PATH >> 24);