wifi: rtw89: coex: Add Wi-Fi role v8 condition when set BTG control
authorChing-Te Ku <ku920601@realtek.com>
Tue, 23 Apr 2024 13:05:01 +0000 (21:05 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 29 Apr 2024 00:54:13 +0000 (08:54 +0800)
BTG(A hardware block, which Wi-Fi 2.4Ghz & Bluetooth shared a part
of hardware). Because some information are saved in role info. So the
logic also need to get value from the version 8 role info.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240423130502.32682-8-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c

index ab51aa3ffbe13a31358f95636e3c40b4606fca05..0942a182976a3e15a7c0284836aec4fc80c5a3be 100644 (file)
@@ -4713,6 +4713,7 @@ static void _set_btg_ctrl(struct rtw89_dev *rtwdev)
        struct rtw89_btc_wl_info *wl = &btc->cx.wl;
        struct rtw89_btc_wl_role_info_v1 *wl_rinfo_v1 = &wl->role_info_v1;
        struct rtw89_btc_wl_role_info_v2 *wl_rinfo_v2 = &wl->role_info_v2;
+       struct rtw89_btc_wl_role_info_v8 *wl_rinfo_v8 = &wl->role_info_v8;
        struct rtw89_btc_wl_role_info *wl_rinfo_v0 = &wl->role_info;
        struct rtw89_btc_wl_dbcc_info *wl_dinfo = &wl->dbcc_info;
        const struct rtw89_chip_info *chip = rtwdev->chip;
@@ -4733,6 +4734,8 @@ static void _set_btg_ctrl(struct rtw89_dev *rtwdev)
                wl_rinfo.link_mode = wl_rinfo_v1->link_mode;
        else if (ver->fwlrole == 2)
                wl_rinfo.link_mode = wl_rinfo_v2->link_mode;
+       else if (ver->fwlrole == 8)
+               wl_rinfo.link_mode = wl_rinfo_v8->link_mode;
        else
                return;
 
@@ -4746,6 +4749,8 @@ static void _set_btg_ctrl(struct rtw89_dev *rtwdev)
                        wl_rinfo.dbcc_2g_phy = wl_rinfo_v1->dbcc_2g_phy;
                } else if (ver->fwlrole == 2) {
                        wl_rinfo.dbcc_2g_phy = wl_rinfo_v2->dbcc_2g_phy;
+               } else if (ver->fwlrole == 8) {
+                       wl_rinfo.dbcc_2g_phy = wl_rinfo_v8->dbcc_2g_phy;
                } else {
                        return;
                }